zoukankan      html  css  js  c++  java
  • 转:PHP环境搭建

    本文PHP环境采用,nginx + PHP7 + mysql 5.6

    一、安装mysql 5.6

      参见:http://www.cnblogs.com/rslai/p/7853465.html

    二、Nginx1.8.1 安装

       注:现在安装1.12.1版本。

      1)安装 nginx 需要的扩展gcc,pcre-devel,zlib-devel, openssl openssl-devel

    yum -y install gcc-c++ pcre-devel zlib-devel openssl openssl-devel
    

      2)编译安装Nginx

    # 进入安装目录
    cd /usr/local/src
    # 下载ngix
    wget http://nginx.org/download/nginx-1.8.1.tar.gz
    
    tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/src
    
    cd /usr/local/src/nginx-1.8.1
    #默认安装到/usr/local/nginx目录下
    ./configure
    # 编译
    make
    # 安装
    make install
    

      3)启动Nginx

        开启Nginx

    /usr/local/nginx/sbin/nginx
    

      4)设置Nginx开机自启

    # 打开rc.local
    vim /etc/rc.local
    # 在rc.local中添加
    /usr/local/nginx/sbin/nginx
    # 保存并推出
    # 修改rc.local权限
    chmod -R 777 /etc/rc.local

      5)重读配置文件和关闭服务

    /usr/local/nginx/sbin/nginx  #启动 服务
    /usr/local/nginx/sbin/nginx   -s  reload  #不停止服务重读配置文件
    /usr/local/nginx/sbin/nginx -s stop #停止服务  #停止服务
    

      6)Nginx 配置文件所在目录

    /usr/local/nginx/conf

      备注:nginx完成安装以后,有四个主要的目录:

    conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
    html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
    logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
    sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。

      7)nginx编译扩展参考

        https://www.cnblogs.com/zhang-shijie/p/5294162.html

        目前差:https模块、IPV6模块

    三、php7编译安装

      1)下载并解压php7

    # 进入local/src目录
    cd /usr/local/src/
    # 下载php7源码包
    wget http://cn2.php.net/distributions/php-7.0.2.tar.gz
    # 解压缩
    tar -xzxvf php-7.0.2.tar.gz
    # 进入php源码目录
    cd php-7.0.2

      2)检查php所需要的全部扩展 ,没有的话执行

    yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 libjpeg-devel bzip2-devel.x86_64 libXpm-devel install gmp-devel icu libicu libicu-devel php-mcrypt libmcrypt libmcrypt-devel postgresql-devel libxslt-devel
    

        注:因为改为用nginx了,所以编译参数中的--with-apxs2=/usr/bin/apxs去掉了,如果要配置apache用,安装PHP前,请先安装apache。

      3)编译参数配置

    './configure' '--prefix=/usr/local/php' '--with-pdo-pgsql' '--with-zlib-dir' '--with-freetype-dir' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl' '--with-mcrypt' '--with-gd' '--with-pgsql' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-pcntl' '--enable-mbregex' '--enable-exif' '--enable-bcmath' '--with-mhash' '--enable-zip' '--with-pcre-regex' '--with-pdo-mysql' '--with-mysqli' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--with-openssl' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--with-libdir=/lib/x86_64-linux-gnu/' '--enable-ftp' '--with-gettext' '--with-xmlrpc' '--with-xsl' '--enable-opcache' '--enable-fpm' '--with-iconv' '--with-xpm-dir=/usr'
    

      4)如果报如下错误

    configure: error: mcrypt.h not found. Please reinstall libmcrypt. 
    

      请参考:http://blog.csdn.net/l_yangliu/article/details/53018117

      内容摘录如下

    源码编译安装,去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装包
    libmcrypt(libmcrypt-2.5.8.tar.gz ):
    mcrypt(mcrypt-2.6.8.tar.gz ):
    mhash(mhash-0.9.9.9.tar.gz ):
    
    wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz
    wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz
    wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz
    
    1 .先安装Libmcrypt
    #tar -zxvf libmcrypt-2.5.8.tar.gz
    #cd libmcrypt-2.5.8
    #./configure
    #make
    #make install 
    说明:libmcript默认安装在/usr/local
    
    2.安装mhash
    #tar -zxvf mhash-0.9.9.9.tar.gz
    #cd mhash-0.9.9.9
    #./configure
    #make
    #make install
    
    3.安装mcrypt
    #tar -zxvf mcrypt-2.6.8.tar.gz
    #cd mcrypt-2.6.8
    #LD_LIBRARY_PATH=/usr/local/lib ./configure
    #make
    #make install

      再次进入php源码目录重复“3)编译参数配置

    cd php-7.0.2

      如果出现错误:

    --ENABLE-OPCACHE=NO
    

      则执行

    export LD_LIBRARY_PATH=/usr/local/mysql/lib
    export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib
    

      再次重复“3)编译参数配置

      5)配置的checking 结束后,执行: 

    make clean && make && make install

      6)装完成后,我们要把源码包中的配置文件复制到PHP安装目录下,源码包中有两个配置 php.ini-development php.ini-production ,看名字就知道,一个是开发环境,一个是生产环境,我们这里就复制开发环境的

    cp php.ini-development /usr/local/php/lib/php.ini

      7)另外还需要设置环境变量 :修改vim /etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码

    vim /etc/profile
    # 在最后加入
    PATH=$PATH:/usr/local/php/bin
    export PATH

        然后执行 命令 source /etc/profile

      8)php -v 就可以看到PHP版本信息了。
      9)此时还需要配置PHP-fpm:

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    cp /usr/local/src/php-7.0.2/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    

      10)启动php-fpm: 

    useradd www-data; /usr/local/php/sbin/php-fpm

      11)php-fpm设置开机自启 

    systemctl enable php-fpm
    

    四、检查安装是否正确

      1)检查nginx 是否配置正确,默认nginx网页放在了

    /usr/local/nginx/html
    

      目录下,在此目录中方一个htm文件

      2)在服务器wget如果能返回文件证明nginx配置正确

    wget http://127.0.0.1
    

      3、从客户端浏览器中访问相应ip,如果打不开则有可能是防火墙开着,可以简单粗暴的关闭防火墙或配置允许访问端口,关闭防火墙如下命令

    systemctl stop firewalld.service
    

      4、再次访问如果可以看到则nginx配置没问题。 

      5、测试php配置是否正常,修改nginx配置文件

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

        修改为如下内容,注意目录配置在  /home/www/public 如有需要可以按需修改

    #user  www www;
    #user root;
    worker_processes  1;
    #pid        /var/run/nginx.pid;
    events {
        worker_connections  51200;
    }
    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"';
        sendfile        on;
        keepalive_timeout  300;
        client_max_body_size 20m;
        #include /etc/nginx/conf.d/*.conf;
        server
        {
            listen 80;
            server_name  192.168.3.20;
            #return   301 https://$server_name$request_uri;
            index index.html index.htm index.php;
            root  /home/www/public;
            if (!-e $request_filename)
            {
                 rewrite ^/index.php(.*)$ /index.php?s=$1 last;
                 rewrite ^(.*)$ /index.php?s=$1 last;
                 break;
            }
            location /nginx_status
            {
                #stub_status on;
                #access_log   /mydata/nginx.log;
                auth_basic "NginxStatus";
            }
            location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|css)$
            {
    			expires 24h;
    			root  /home/www/public/;
            }
            location ~ /.
            {
                deny all;
            }
            location ~ [^/].php(/|$) {
            root           /home/www/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include  fastcgi_params;
            }
        }
    }

      6、重启nginx配置

    /usr/local/nginx/sbin/nginx   -s  reload  #不停止服务重读配置文件
    

      7、在web目录下新增一个hello.php文件将如下代码复制进去,我放在了 /home/www/public/ 目录。

    <html>
     <head>
      <title>PHP 测试</title>
     </head>
     <body>
     <?php echo '<p>Hello World</p>'; ?>
     </body>
    </html>
    

      8、从浏览器上访问 http://192.168.3.219/hello.php,如果能看到 Hello World 则代表php环境配置正常

    参考文献:

      http://www.cnblogs.com/jinkechen/p/6830740.html

      https://www.cnblogs.com/zhang-shijie/p/5294162.html

  • 相关阅读:
    zookeeper安装教程
    CentOS7服务管理(重启,停止,自动启动命令)
    redis配置文件详解
    阿里云 CentOS7安装redis4.0.9并开启远程访问
    rpm命令
    wget命令
    yum命令
    maven项目debug调试不能够进入源码问题解决
    8-字符串
    7-数组
  • 原文地址:https://www.cnblogs.com/rslai/p/7851220.html
Copyright © 2011-2022 走看看