linux nginx+php源码安装

筅森魡賤 提交于 2019-11-28 11:33:50

PHP安装

1)下载

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

2)解压

tar –xf php-5.6.30

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

     netstat -ntlp|grep 8080

    ps -ef|grep nginx

 

redis、xdebug扩展安装

tar  -zxvf  redis-2.2.8.tgz

cd  redis-2.2.8

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

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

make && make install

vim  /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   #如果没有将phpize加入$PATH,则应该使用全路径
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config 
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so  
修改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扩展是否安装成功。
 
 
 
 

    

 

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