安装借鉴地址:ubuntu 14.04 安装php7
sudo apt-get update
sudo apt-get install libxml2-dev
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
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
将 前面的分号去掉,
没有这段代码就加上, 注意路径
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 下配置php环境变量
sudo gedit /etc/environment
/usr/local/php/bin
//试试 php -v 是否能看到版本
// 如果重启后都还没生效, 执行 source /etc/environment 立刻生效
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;
#}
}