PHP CentOS下安裝PHP及部署ThinkPHP


本文操作環境:CentOS 7 64位

下載PHP源碼

百度搜索PHP,進入官網下載頁面。

 如我下載的是 php-7.2.33.tar.gz ,將之上傳到CentOS的 /home/local/ 目錄下。

yum安裝依賴包

yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip gcc-c++

解壓PHP並安裝

cd /home/local
tar -zxvf php-7.2.33.tar.gz

進入PHP的解壓目錄中,

cd php-7.2.33

關聯安裝配置,

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=wong \
--with-fpm-group=wong \
--disable-rpath \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mhash \
--with-pcre-regex \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-mbstring \
--with-onig \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-zlib-dir \
--with-readline \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--with-pear

其中,"--prefix=" 和 "--with-config-file-path="指PHP安裝路徑及其配置文件路徑(最好是本文所示路徑,可省去修改下文中的php-fpm.service)。  "--with-fpm-user=" 和 "--with-fpm-group="指當前Linux系統登錄的用戶名和組。

開始執行編譯和安裝,

make && make install

靜靜等待若干分鍾......

如果要重新編譯安裝,需要先清除編譯(make clean)!

配置PHP環境變量

vim /etc/profile
export PATH=$PATH:/usr/local/php/bin:/usr/local/php/sbin    # 添加 php 及 php-fpm 環境變量,用冒號拼接
source /etc/profile    # 刷新環境變量

復制新的配置文件並修改

當前還是解壓目錄:/home/local/php-7.2.33,復制一份 php.ini 到安裝目錄下:
cp php.ini-development /usr/local/php/etc/php.ini

進入安裝目錄的etc下:cd /usr/local/php/etc,分別復制一份 php-fpm.conf 和 php-fpm.d/www.conf cp
php-fpm.conf.default php-fpm.conf cp php-fpm.d/www.conf.default php-fpm.d/www.conf

php-fpm 是Linux系統下 PHP 和 fastCGI 的進程管理器,服務端口默認是9000.

修改配置:

1)進入 /usr/local/php/etc ,修改 php-fpm.conf 文件,將 "pid = run/php-fpm.pid" 注釋去掉。

 2)進入 /usr/local/php/etc/php-fpm.d,修改php的服務文件 www.conf

記得重啟php服務:php-fpm

將 php-fpm.service 服務文件復制到 systemctl 中

cp /home/local/php-7.2.33/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl start php-fpm    # 啟動php-fpm服務
systemctl enable php-fpm   # php-fpm服務設為開機啟動

讓Nginx支持PHP 

打開Nginx配置文件 nginx.conf,在 server 中添加如下內容。

location ~ .*\.php$ {
    fastcgi_pass  localhost:9000;
    fastcgi_index  index.php;
    include  fastcgi.conf;
}

在nginx的html目錄中編寫一個包含 phpinfo() 方法的index.php文件,測試效果如下。

讓Nginx支持ThinkPHP5框架

修改nginx配置文件。

server {
    listen       80;
    server_name  192.168.1.22;
    root  /usr/src/ECommerce;
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    #location / {
        #配置PHP的path_info訪問模式(Apache支持path_info,而低版本的Nginx並不支持path_info,需要手動轉換。高版本的Nginx已支持)
        #if (!-e $request_filename){
        #     rewrite ^(.*)$  /index.php?s=/$1  last;     #官網推薦的兼容模式
        #}
        #index  index.php index.html index.htm;
    #}

    #配置以下內容,訪問網頁時就不會變成下載了!
    location ~* .+\.php(.*)$ {
        set  $script  $uri;
        set  $path_info  "/";
        if ($uri ~ "^(.+\.php)(/.+)"){
            set  $script  $1;
            set  $path_info  $2;
        }

        fastcgi_pass   192.168.1.22:9000;      #與php-fpm.d/www.conf文件中一致
        fastcgi_index  index.php?IF_REWRITE=1;
        include  fastcgi.conf;

        #支持 ?s=/module/controller/action 的url訪問模式
        fastcgi_param  SCRIPT_FILENAME  $document_root$script;
        fastcgi_param  SCRIPT_NAME  $script;

        #支持 index.php/index/index/index 的pathinfo模式
        fastcgi_param  PATH_INFO  $path_info;
    }
}

掃一個部署ThinkPHP5遇到的坑

報錯提示,如圖。

解決辦法:數據庫配置文件 database.php 中的 hostname 不能是 localhost,改為IP即可。

部署成功!

 

至此。轉載請注明出處,記得掃碼打賞支持哦,謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM