每回安装环境都要去百度几文章,今天索性自己写一篇,以后省去百度的麻烦了,本文介绍的是在Ubuntu14.04下搭建LANMP环境(Apache+Nginx+MySQL+PHP),如果你只想安装lamp或者lnmp都通用,直接拿去。
首先分两步走:
每一、先更新系统然后安装必要的依赖(这一步为以后的扩展提供铺垫)
第二、安装mysql apache2 php

sudo apt-get update
sudo apt-get install build-essential gcc g++ autoconf libiconv-hook-dev libmcrypt-dev libxml2-dev libmysqlclient-dev libcurl4-openssl-dev libjpeg8-dev libpng12-dev libfreetype6-dev snmp mcrypt
 
sudo apt-get install mysql-server mysql-client
sudo apt-get install apache2
sudo apt-get install php5 php5-common php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache php5-mcrypt

  重启apache2

sudo service apache2 restart

  ubuntu下apache2虚拟主机配置

cd /etc/apache2/sites-available
ls
000-default.conf  default-ssl.conf
sudo cp 000-default.conf 000-default.conf.bak
sudo vim 000-default.conf

  文件修改为以下内容

<VirtualHost *:80>
 
    ServerAdmin webmaster@localhost
    DocumentRoot /data/www
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
 
</VirtualHost>

  重启apache2测试效果

sudo service apache2 restart

  

cd chmod 777 /data/www
 
vim info.php
 
<?php
phpinfo();

  在浏览器上http://localhost/info.php

ps aux | grep apache2
root      3749  0.0  0.7 568604 28152 ?        Ss   10:05   0:00 /usr/sbin/apache2 -k start
www-data  3753  0.0  0.6 797128 24504 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
www-data  3754  0.0  0.7 574664 30756 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
www-data  3755  0.0  0.5 571040 22676 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
www-data  3756  0.0  0.4 569892 18596 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
www-data  3757  0.0  0.4 569884 18660 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
www-data  3808  0.0  0.5 570500 21040 ?        S    10:05   0:00 /usr/sbin/apache2 -k start
zzs       4187  0.0  0.0  15960   924 pts/0    S+   10:53   0:00 grep --color=auto apache2

  第三步、安装Nginx

sudo apt-get install nginx
sudo apt-get install php5-fpm
cd /etc/nginx/sites-available
sudo cp default default.bak

  配置Nginx使其支持PHP

cd /etc/nginx/sites-available
 
sudo vim default

  Nginx主机配置(端口改为8080,根目录和刚才的apache2要目录一样/data/www)

server {
    listen 8080 default_server; #修改端口
    listen [::]:8080 default_server ipv6only=on; #修改端口
 
    root /data/www; #修改网站根目录
    index index.php index.html index.htm; #添加index.php索引文件
 
    # Make site accessible from http://localhost/
    server_name localhost;
 
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }
 
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 
        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock; #使用套接字方式启动
        fastcgi_index index.php;
        include fastcgi_params;
    }
 
}

  重启服务,查看进程

sudo service nginx restart
sudo service php5-fpm restart
ps aux | grep php-fpm
root      3803  0.0  0.6 522716 26760 ?        Ss   10:05   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data  3806  0.0  0.4 751104 16396 ?        S    10:05   0:00 php-fpm: pool www                                                       
www-data  3807  0.0  0.2 522716  8432 ?        S    10:05   0:00 php-fpm: pool www                                                       
zzs       4234  0.0  0.0  15956   924 pts/0    S+   11:06   0:00 grep --color=auto php-fpm
ps aux | grep nginx
root      3782  0.0  0.0  85868  1360 ?        Ss   10:05   0:00 nginx: master process /usr/sbin/nginx
www-data  3783  0.0  0.0  86164  2032 ?        S    10:05   0:00 nginx: worker process
www-data  3784  0.0  0.0  86164  2520 ?        S    10:05   0:00 nginx: worker process
www-data  3785  0.0  0.0  86164  2032 ?        S    10:05   0:00 nginx: worker process
www-data  3786  0.0  0.0  86164  1776 ?        S    10:05   0:00 nginx: worker process
zzs       4236  0.0  0.0  15956   916 pts/0    S+   11:06   0:00 grep --color=auto

  

附apache2虚拟主机配置方法:

在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/文件 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间,将default文件复制一份改一下里面的路径就可以了,要启用配置则则将此文件做一个软链接到 /etc/apache2/sites-enabled/ 目录下
下面具个例子说明:

$ cd /etc/apache2/sites-available/
$ sudo cp 000-default.conf test.conf
$ mkdir /data/www/logs
<VirtualHost *:80>
 
    #ServerAdmin webmaster@localhost
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /data/www/test
 
    ErrorLog /data/www/logs/test-error.log
    CustomLog /data/www/logs/test-access.log combined
 
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
 
</VirtualHost>

  添加软链接到/etc/apache2/sites-enabled目录

$ sudo ln -s /etc/apache2/sites-available/test.conf /etc/apache2/sites-enabled/test.conf

  

$ cd /etc/apache2/sites-enabled
 
$ ls -al
drwxr-xr-x 2 root root 4096 12月 14 11:48 ./
drwxr-xr-x 8 root root 4096 12月 14 00:13 ../
lrwxrwxrwx 1 root root   35 12月 14 00:00 000-default.conf -> ../sites-available/000-default.conf
lrwxrwxrwx 1 root root   38 12月 14 11:48 test.conf -> /etc/apache2/sites-available/test.conf

  

注意:

查看fpm进程是

ps aux | grep php-fpm

  重启服务是

sudo service php5-fpm restart

  不知道为何两者名称不统一,最好用ps aux| grep fpm来查看