Ubuntu 15.10 安装 php7.0.6 + nginx-1.9.3(ubuntu)

安装php-7.0.6 步骤 和配置 (Ubuntu 15.10)

  • 下载php-7.tar.gz 包
  • 安装一系列需要的依赖包

安装借鉴地址:ubuntu 14.04 安装php7

sudo apt-get update
sudo apt-get install libxml2-dev
  • 安装gcc
sudo apt-get  install  build-essential
sudo apt-get install openssl 
sudo apt-get install libssl-dev 
apt-get install make
apt-get install curl
apt-get install libcurl4-gnutls-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libmcrypt-dev
sudo apt-get install libreadline6 libreadline6-dev

cd php-7 目录 (开始编译)

注意以下 是把 php 编译到 /usr/local/ 下

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
./configure --prefix=/usr/local/php --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache  --with-mysql --with-mysqli --with-mysql-sock  --enable-pdo --with-pdo-mysql --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --enable-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-libdir=/lib/x86_64-linux-gnu --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --enable-xml

安装 PHP

 make && make test (这一步要很久很久, php要自动测试, 大概半小时)
 make && sudo make install

下面是对php-fpm运行用户进行设置
配置php-fpm (不能漏一步)

去 解压后的安装包里面:

sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm

把 php-fpm.conf.default 复制为 php-fpm.conf

cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf

把 www.conf.default 复制为 www.conf

cd /usr/local/php/etc/php-fpm.d
cp www.conf.default www.conf

开始配置 php-fpm.conf

cd /usr/local/php/etc
vim php-fpm.conf

修改 (如果没有, 就加上) 根据情况而定, 并且要加在 最底下

这里要特别注意的是: 个人建议把 user 和 group 写成 你自己的用户名(登陆系统的用户名), 否则有可能导致项目不能访问, 原因是linux目录权限问题,nginx 配置文件(nginx.conf)的user 也要改成你的用户名, 避免出现 403 Forbiden

user = www-data
group = www-data

如果www-data用户不存在,那么先添加www-data用户
建议:
cat /etc/passwd  查看www-data 用户 是否存在
cat /etc/group    查看www-data 分组 是否存在
如果没有:
groupadd www-data
useradd -g www-data www-data

找到 include=/usr/local/php/etc/php-fpm.d/*.conf
将 前面的分号去掉, 
没有这段代码就加上, 注意路径
  • 配置 www.conf
cd /usr/local/php/etc/php-fpm.d 
找到: listen = /var/run/php-fpm.socket 
//把分号去掉 改为
listen = 127.0.0.1:9000 (如果默认等于 127.0.0.1:9000, 就不管)

//这个用户和分组貌似默认就是 nobody, 到时候,没有再添加吧
user = nobody
group = nobody

php-fpm 应该就配置完了, 可以启动了
启动php-fpm

sudo /usr/local/php/sbin/php-fpm

关闭php-fpm 的命令,

方法1:killall php-fpm
方法2:用service 管理 php-fpm, nginx也一样。
    service php-fpm [start|stop|restart]

centos下 启动 nginx 略有不同:
    启动:service nginx
    停止:service nginx -s stop

这时可能会报错 gid 找不到 “nobody” 分组找不到
可以 groupadd nobody 添加分组

查看9000端口 是否被监听:

netstat -an | grep LISTEN

可以看到 127.0.0.1:9000 证明php-fpm 已经启动

Ubuntu 15.10 安装 php7.0.6 + nginx-1.9.3(ubuntu)_第1张图片

ubuntu 下配置php环境变量

sudo gedit /etc/environment
/usr/local/php/bin

//试试 php -v 是否能看到版本
// 如果重启后都还没生效, 执行 source /etc/environment 立刻生效

安装 nginx

nginx version: nginx/1.9.3 (Ubuntu)
sudo apt-get install nginx (源代码编译安装未成功,所以用这个命令安装)

分别自动安装 生成以下目录
可以用 whereis nginx 找一下

/usr/sbin/nginx   启动文件
/etc/nginx           所有配置文件目录,包括虚拟主机
/usr/share/nginx   html目录
另一个 html目录
/var/www/html

配置nginx

cd /etc/nginx 
cp nginx.conf nginx.conf.bak

vi nginx.conf
把 user 的#去掉 改为 www-data (改为哪个用户,依据情况而定)
把 worker_processes  改为 worker_processes = 4; (此处根据nginx版本不同,有的版本有等号,有的没有,看原文件有没有)
把 keepalive_timeout 改为 keepalive_timeout 2;

cd /etc/nginx/sites-available/

cp default default.bak
vim default

//找到 location ~ \.php$ 去掉注释, 修改为以下这样

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

重启nginx

service nginx restart

nginx html目录 有两个

/usr/share/nginx/html
/var/www/html

先确定 nginx 默认访问的是那个 html 目录, 是 /usr/share/nginx/html 或 /var/www/html
去nginx 默认访问的 html目录 写一个测试文件
vim test.php 写入 phpinfo();来测试, 看nginx是否支持php (测试前确保,nginx 和 php-fpm 已启动)
查看 :80,  :9000端口 是否被监听

netstat -an | grep LISTEN

配置虚拟主机

cd /etc/nginx/conf.d

比如:vim test.conf
添加以下代码:

server {
        listen       80;
        server_name  test.com; #项目域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   项目路径;
            index  index.php index.html index.htm;
            try_files $uri $uri/ /index.php?$query_string;
        }

        error_page  500 502 503 504 /50x.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           项目路径;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

你可能感兴趣的:(ubuntu,php,Linux)