linux nginx+php源码安装

匿名 (未验证) 提交于 2019-12-02 21:56:30

PHP安装

1)下载

wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

2)解压

3)进入目录

cd php-5.6.30

4)创建文件夹

mkdir /usr/local/php

5)添加fpm及nginx运行的用户和用户组

groupadd www
useradd -g www www -M -s /sbin/nologin

6)编译

./configure --prefix=/usr/local/php --with-mssql=/usr/local/freetds --with-apxs2=/usr/local/apache/bin/apxs --enable-cgi --with-mysql=/usr --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/bin/mysql --with-mysqli=/usr/bin/mysql_config --enable-zip --enable-sqlite-utf8 --enable-sockets --enable-soap --enable-pcntl --enable-mbstring --enable-intl --enable-calendar --enable-bcmath --enable-exif --with-mcrypt --with-mhash --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --with-libxml-dir --with-curl --with-curlwrappers --with-zlib --with-openssl --with-kerberos=shared --with-gettext=shared --with-xmlrpc=shared --with-xsl --with-iconv=/usr/local/libiconv/ --enable-shmop --enable-fpm --with-fpm-user=www --with-fpm-group=www

--with-apsx2 跟 --enable-fpm不分别使用apache跟nginx,./configure时不能同时启用。

7)根据编译出错提示补上缺失的依赖,然后再./configure

yum install pere-devel -y

8)make && make install

9)拷贝服务脚本到init.d目录

cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm

10)添加执行权限

chmod +x /etc/init.d/php-fpm

11)拷贝配置文件

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

cp xxw/tools/php-5.6.30/php.ini-production /usr/local/php/etc/php.ini #前面为你下载解压后的目录

12)配置php.ini

13)配置php-fpm.conf

如果前面配置的时候没有加用户和组,将里面的user = nobody,改为和nginx一样的用户和组。

14)启动php-fpm

/usr/local/php/bin/php -v

/usr/local/php/bin/php-fpm start

重启

killall fpm && /usr/local/php/bin/php-fpm start

/usr/local/php/bin/php-fpm restart

15)检查fpm状态

netstat -nltp |grep 9000

ps -ef|grep fpm

nginx安装

cd /usr/local/src
wget http://nginx.org/download/nginx-1.1.10.tar.gz
tar -zxvf nginx-1.1.10.tar.gz
cd nginx-1.1.10
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module --with-pcre

yum install pere-devel -y

make
make install

修改nginx.conf

/usr/local/nginx/conf/nginx.conf

#user  nobody; worker_processes  1;  #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info;  #pid        logs/nginx.pid;   events {     worker_connections  1024; }   http {     include       mime.types;     default_type  application/octet-stream;      #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '     #                  '$status $body_bytes_sent "$http_referer" '     #                  '"$http_user_agent" "$http_x_forwarded_for"';      #access_log  logs/access.log  main;      sendfile        on;     #tcp_nopush     on;      #keepalive_timeout  0;     keepalive_timeout  65;      #gzip  on;      server {         listen       8080;         server_name  localhost;          #charset koi8-r;          #access_log  logs/host.access.log  main;          location / {             root   html;             index  index.php index.html index.htm;         }          #error_page  404              /404.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           html;             fastcgi_pass   127.0.0.1:9000;             fastcgi_index  index.php;             fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;             include        fastcgi.conf;         }          # deny access to .htaccess files, if Apache's document root         # concurs with nginx's one         #         #location ~ /\.ht {         #    deny  all;         #}     }       # another virtual host using mix of IP-, name-, and port-based configuration     #     #server {     #    listen       8000;     #    listen       somename:8080;     #    server_name  somename  alias  another.alias;      #    location / {     #        root   html;     #        index  index.html index.htm;     #    }     #}       # HTTPS server     #     #server {     #    listen       443 ssl;     #    server_name  localhost;      #    ssl_certificate      cert.pem;     #    ssl_certificate_key  cert.key;      #    ssl_session_cache    shared:SSL:1m;     #    ssl_session_timeout  5m;      #    ssl_ciphers  HIGH:!aNULL:!MD5;     #    ssl_prefer_server_ciphers  on;      #    location / {     #        root   html;     #        index  index.html index.htm;     #    }     #}  } 

 启动nginx

  /usr/local/nginx/sbin/nginx start

redis、xdebug扩展安装

tar

cdredis-2.2.8

/usr/local/php/bin/phpize                      #用phpize生成

./configure --with-php-config=/usr/local/php/bin/php-config      #配置

make && make install

/usr/local/php/etc/php.ini
extension = redis.so
重启fpm、重启nginx
phpinfo查看redis扩展是否安装成功
tar zxvf xdebug-2.1.0.tgz
cd xdebug-2.1.0
#如果没有将phpize加入$PATH,则应该使用全路径
./configure --enable-xdebug
修改php.ini
[xdebug]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9001
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
重启fpm、重启nginx、phpinfo查看xdebug扩展是否安装成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!