搭建Nginx+PHP環境 搭建Nginx+PHP環境用於Memcached的PHP擴展的測試 1. 安裝PHP [root@chunlin PHP] tar zxf php 7.1.5.tar.gz [root@chunlin PHP] cd php 7.1.5 [root@chunlin php ...
搭建Nginx+PHP環境
搭建Nginx+PHP環境用於Memcached的PHP擴展的測試
1. 安裝PHP
[root@chunlin PHP]# tar -zxf php-7.1.5.tar.gz
[root@chunlin PHP]# cd php-7.1.5
[root@chunlin php-7.1.5]# mkdir /usr/local/php
[root@chunlin php-7.1.5]# mkdir /usr/local/php/etc
[root@chunlin php-7.1.5]# mkdir /usr/local/php/etc/php.d
[root@chunlin php-7.1.5]# useradd -s /sbin/nologin php_fpm
[root@chunlin php-7.1.5]# yum install -y libxml2.x86_64
[root@chunlin php-7.1.5]# yum install -y libxml2-devel.x86_64
[root@chunlin php-7.1.5]# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--enable-fpm \
--with-fpm-user=php_fpm \
--with-fpm-group=php_fpm \
--with-mysqli=/usr/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-mysql-sock=/var/lib/data/mysql/mysql.sock \
--enable-xml \
--with-libxml-dir=/usr/bin/xml2-config
2. PHP配置
- 準備配置文件
[root@chunlin php-7.1.5]# cp php.ini-production /usr/local/php/etc/php.ini
[root@chunlin php-7.1.5]# cd /usr/local/php/etc/
[root@chunlin etc]# mv php-fpm.conf.default php-fpm.conf
[root@chunlin etc]# ln -s /usr/local/php/etc/php.ini /etc/php.ini
[root@chunlin etc]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@chunlin ~]# cd /usr/local/php/etc/php-fpm.d/
[root@chunlin php-fpm.d]# mv www.conf.default www.conf
修改配置文件
vim php-fpm.conf
[root@chunlin ~]# cd /usr/local/php/etc/
[root@chunlin etc]# vim php-fpm.conf
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = warning
#其他選項使用文件中給出的預設配置即可vim www.conf
[root@chunlin php-fpm.d]# cd /usr/local/php/etc/php-fpm.d/
[root@chunlin php-fpm.d]# vim www.conf
user = php_fpm
group = php_fpm
listen.owner = php_fpm
listen.group = php_fpm
listen.mode = 0660
#其他選項使用文件中給出的預設配置即可vim php.ini
[root@chunlin ~]# ln -s \
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#設置時區為上海
[root@chunlin ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
expose_php = Off
#出於安全靠慮
short_open_tag = On
#支持短標簽
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,
proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,
syslog,readlink,symlink,popepassthru,stream_socket_server,
fsocket,popen
#出於安全的考慮禁用某些函數
opcache.enable=1
opcache.enable_cli=1
extension_dir = "/usr/local/php/lib/php/extensions
/no-debug-non-zts-20160303"
zend_extension=opcache.so
#開啟opcache緩存
#其他選項使用文件中給出的預設配置即可配置php-fpm自啟動
[root@chunlin ~]# cd /usr/local/package/LNMP/PHP/php-7.1.5
[root@chunlin php-7.1.5]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@chunlin php-7.1.5]# chmod 755 /etc/init.d/php-fpm
[root@chunlin php-7.1.5]# chkconfig --add php-fpm
[root@chunlin php-7.1.5]# chkconfig php-fpm on
3. Nginx編譯安裝
1)安裝準備
- 系統:redhat6.5.x86_64
- 軟體:nginx-1.10.3.tar.gz(穩定版)、gcc.x86_64、pcre-devel.x86_64、perl-ExtUtils-Embed.x86_64、zlib-devel.x86_64、openssl-devel.x86_64
[root@chunlin Nginx]# mkdir /opt/nginx
[root@chunlin Nginx]# tar -zxf nginx-1.10.3.tar.gz
[root@chunlin Nginx]# ls
nginx-1.10.3 nginx-1.10.3.tar.gz
[root@chunlin Nginx]# cd nginx-1.10.3
[root@chunlin nginx-1.10.3]# vim auto/cc/gcc
#debug
#CFLAGS="$CFLAGS -g"
將以上兩行註釋掉,取消nginx的debug編譯模式,編譯更快。
[root@chunlin nginx-1.10.3]# vim src/core/nginx.h
#define NGINX_VER "nginx"
上面的那條修改是為了nginx伺服器的安全,隱藏了nginx版本,需要將#define NGINX_VER後面的雙引號中的字元串改為nginx
2)編譯安裝
[root@chunlin nginx-1.10.3]# ./configure --prefix=/opt/nginx \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_perl_module \
--with-http_ssl_module
configure是個shell腳本,是autoconf的工具的基本應用,用來配置軟體屬性,安裝目錄,檢查編譯所需的庫文件是否存在或者符合條件等,生成編譯所需要的Makefile 文件。
編譯的時候我選擇將http_gzip_static_module、http_stub_status_module、http_perl_module、http_ssl_module這四個模塊編譯進去。
- http_gzip_static_module:這個模塊支持線上實時壓縮輸出數據流
- http_stub_status_module:監控Nginx的狀態
- http_perl_module:支持Perl腳本
- http_ssl_module:開啟SSL模塊,支持使用HTTPS協議的網頁
[root@chunlin nginx-1.10.3]# make
#make 是 Linux 開發套件裡面自動化編譯的一個控製程序,它根據Makefile控制代碼編譯源碼。如果在make過程中出錯了,可以通過先make clean,然後再重新make。
[root@chunlin nginx-1.10.3]# make install
4. Nginx配置
[root@chunlin ~]# vim /opt/nginx/conf/nginx.conf
#需要先安裝Nginx,以下是配置文件中要修改或增加的內容
user php_fpm php_fpm;
location / {
root html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@chunlin ~]# nginx -t
[root@chunlin ~]# nginx -s reload