日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php环境搭建(需编译安装)

發布時間:2024/8/24 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 php环境搭建(需编译安装) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以下是我遇到坑,又解決的過程

借鑒某位大佬,原文:https://www.cnblogs.com/wujuntian/p/8183952.html

一、安裝前

1.更新系統軟件:

yum update

2.查看是否已安裝wget:

rpm -qa wget

否則安裝:

yum install wget

3.查看是否已安裝編譯器:

rpm -qa gcc

否則安裝:

yum install gcc gcc-c++

二、安裝Nginx

1.安裝nginx依賴包

nginx的Rewrite模塊和HTTP核心模塊會使用到PCRE正則表達式語法:

yum -y install pcre pcre-devel

nginx的各種模塊中需要使用gzip壓縮:

yum -y install zlib zlib-devel

安全套接字層密碼庫:

yum -y install openssl openssl-devel

2.下載nginx包并解壓(到/usr/local/src目錄中)

cd /usr/local/src

wget http://nginx.org/download/nginx-1.12.2.tar.gz

tar -zxvf nginx-1.12.2.tar.gz

3.編譯安裝(到/usr/local/nginx目錄中)

cd nginx-1.12.2

./configure --prefix=/usr/local/nginx

make

make install

4.創建并設置nginx運行賬號:

groupadd nginx

useradd -M -g nginx -s /sbin/nologin nginx

cd /usr/local/nginx/conf

vi nginx.conf,設置user參數如下:

user nginx nginx

其他配置參數暫時無需改動。

5.設置nginx為系統服務

vi /lib/systemd/system/nginx.service

文件內容:

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

6.設置nginx開機自啟動

systemctl enable nginx.service

7.開啟nginx服務:

systemctl start nginx.service

查看nginx是否啟動成功:

ps aux | grep nginx

在虛擬機瀏覽器中訪問測試:(我沒有裝圖形化的鏡像,不能展示,借用大佬的)

http://localhost

出現以下界面則表示可以成功訪問:

8.防火墻開放80端口(nginx默認使用80端口,可在nginx.conf中配置,若無需進行遠程訪問則不需要開放端口)

永久開放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

重啟防火墻:

firewall-cmd --reload

查看防火墻開啟狀態:

systemctl status firewalld

查看80端口是否開放成功:

firewall-cmd --zone=public --query-port=80/tcp

可在windows宿主主機瀏覽器直接訪問虛擬機ip測試是否可以成功訪問。

三、安裝Mysql

1.卸載已有mysql

查看是否已安裝mysql:

rpm -qa mysql

有則卸載:

rpm -e --nodeps文件名稱

是否存在與mysql相關的文件或目錄:

whereis mysql

是則刪除。

查看是否存在mariadb:

rpm -qa | grep mariadb

存在則卸載:

rpm -e --nodeps 文件名 //文件名是上一個命令查詢結果

rpm -qa | grep my.cnf,查看是否存在my.cnf

存在/etc/my.cnf,則需要先刪除:(我這邊都不存在哈)

rm /etc/my.cnf

2.安裝編譯mysql需要的依賴包

yum install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*

3.安裝cmake(mysql5.5之后需要用cmake支持編譯安裝)

查看是否已安裝cmake:

rpm -qa cmake

沒有則下載編譯安裝:

cd /usr/local/src

wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz

tar -xf cmake-2.8.12.1.tar.gz

cd cmake-2.8.12.1

./configure

make

make install

檢查cmake是否安裝成功:

cmake --version

4.下載mysql包并解壓(到/usr/local/src目錄)

4.1這邊有遇到坑到解決的過程,正確的看下面

cd /usr/local/src

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz(大佬的mysql-5.6.38下載不了,我重新找了個,注意要下載linux版本的,我這個是Windows版本,后面會發現編譯不了)

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz(這是linux版本,正確的)

tar -zxvf mysql-5.6.38.tar.gz   /   unzip -o mysql-5.6.45-winx64.zip -d src/   ?。偨Y一下tar -zxvf 包名.gz 或 unzip -o 包名.zip -dsrc/(創建新的解壓后的存放目錄src))

沒有這個命令,下載安裝一下yum install -y unzip zip

5.編譯安裝(到/usr/local/mysql目錄)

5.1這邊有遇到坑到解決的過程,正確的看下面

cd mysql-5.6.38

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

遇到坑了,解決一下

編譯失敗了,因為是Windows版本,所以編譯不了,這邊重新找了linux版本,https://dev.mysql.com/downloads/mysql/5.6.html

復制下載壓縮包的地址,https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz

4.下載mysql包并解壓(到/usr/local/src目錄)

4.1這邊是正確的

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz

tar -zxvf mysql-5.6.45.tar.gz

重新編譯安裝

5.編譯安裝(到/usr/local/mysql目錄)

5.1這邊是正確的

cd mysql-5.6.45

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

make(此過程需花費大概20-30分鐘)

make install

6.配置mysql

groupadd mysql

useradd -M -g mysql -s /sbin/nologin mysql

chown -R mysql:mysql /usr/local/mysql

7.初始化配置

cd /usr/local/mysql/scripts

./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

8.設置mysql為系統服務

vim /lib/systemd/system/mysql.service

文件內容:

[Unit]

Description=mysql

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/mysql/support-files/mysql.server start

ExecStop=/usr/local/mysql/support-files/mysql.server stop

ExecRestart=/usr/local/mysql/support-files/mysql.server restart

ExecReload=/usr/local/mysql/support-files/mysql.server reload

PrivateTmp=true

[Install]

WantedBy=multi-user.target

9.設置mysql服務開機自啟動

systemctl enable mysql.service

10.啟動mysql

systemctl start mysql.service

若是啟動失?。?/p>

直接使用/usr/local/mysql/support-files/mysql.server restart啟動可以看到詳細錯誤原因:

若是這個原因,/var/lib/mysql這個目錄(用于存放mysql.sock)不存在的話,手動創建就好了:

mkdir /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql

再次啟動,成功了!

systemctl start mysql.service

systemctl status mysql.service

查看是否啟動成功:

ps aux | grep mysql

11.登錄mysql并設置root密碼:(大佬給的思路,但是不知道為什么我密碼重置不了)

/usr/local/mysql/bin/mysql -u root

set password=password('123456');

四、安裝PHP

1.安裝php依賴包

yum 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

若提示yum中沒有可用的軟件包libmcrypt和libmcrypt-devel,則需要手動編譯安裝,可以先在windows宿主主機中前往libmcrypt官網下載然后使用rz指令將包上傳至centos7進行編譯安裝。我下載的包為libmcrypt-2.5.8.tar.gz:

我這邊就是提示安裝不了,所以手動下載到本地,再移動

tar -zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure --prefix=/usr/local/libmcrypt

make

make install

2.下載php包并解壓

cd /usr/local/src

在windows上前往php官網下載php-7.2.0包,然后使用rz指令將下載好的php安裝包上傳到centos7上,解壓:

又是下載到本地再移過來的

tar -zxvf php-7.2.0.tar.gz

3.編譯安裝(到/usr/local/php目錄)

cd php-7.2.0

./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath

(注意:--with-mcrypt參數指定的是libmcrypt的安裝目錄。Php7不再使用mysql的庫來支持mysql的連接,而是啟用了mysqlnd來支持,所以php7的編譯已經不再使用--with-mysql參數指定mysql的安裝位置了,若想支持mysql,需要設置--enable-mysqlnd、--with-mysqli和--with-pdo-mysql=mysqlnd參數,--with-mysql-sock指定的是編譯mysql時-DMYSQL_UNIX_ADDR參數指定的文件)

這邊的注意是怎么回事呢

make(此過程需花費大概20分鐘)

make install

4.將php包解壓目錄中的配置文件放置到正確位置(configure命令中的--with-config-file-path設置的位置)

cp php.ini-development /etc/php.ini

5.創建并設置php-fpm運行賬號

groupadd www-data

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

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

vi php-fpm.conf

發現搜索不到“user”(設置運行賬號的位置),但發現文件的最后一行:

所以:

cd php-fpm.d

cp www.conf.default www.conf(否則include匹配不到文件)

viwww.conf

搜索“user”設置運行賬號:

user=www-data

group=www-data

6.配置nginx支持php

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

修改完成之后記得重啟nginx服務:

systemctl start nginx.service

啟動不了找原因

因為文件里面少這一行

重新啟動成功

7.設置php-fpm為系統服務:

vi /etc/systemd/system/php-fpm.service

文件內容:

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/php/sbin/php-fpm

PrivateTmp=True

[Install]

WantedBy=multi-user.target

8.設置php-fpm服務開機自啟動:

systemctl enable php-fpm.service

9.啟動php-fpm:

systemctl start php-fpm.service

查看是否啟動成功:

ps aux | grep php-fpm

10.寫一個php腳本測試nginx是否已支持php,php是否已支持mysql。

<?php
phpinfo();

登錄地址會變成下載test.php文件

解決方法:改nginx配置,把以下代碼前面的 # 去掉,如教程https://blog.csdn.net/pang040328/article/details/12291085(借鑒一下大神教程,謝謝)

我的nginx配置在conf目錄里

cd /usr/local/nginx/conf

vi nginx.conf

再重新輸入

成功

11.導入項目

11.1導入項目到這個目錄下,cd /usr/local/nginx/html

解壓

11.2改配置文件

配置完后,頁面展示不出來,各種報錯各種改,覺得可能項目有問題,換了一個項目,朋友說是這么配的,但是還是展示不出來,沒找到原因

11.3重啟nginx

systemctl restart nginx.service

驗證

請多指教


總結

以上是生活随笔為你收集整理的php环境搭建(需编译安装)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。