這篇文章主要介紹怎么搭建PHP環境,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
如何在CentOS上搭建LNMP開發環境
一:準備工作
1.安裝wget
wget
是一個從網絡上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的TCP/IP協議下載,并可以可以使用HTTP代理。
sudo yum install wget
2.安裝net-tools
最小化安裝CentOS7時如果無法使用ifconfig命令,則需要安裝net-tools
,如果是安裝的CentOS6版本則無需安裝
sudo yum install net-tools
3.更新yum源
yum -y update
4.安裝vim
sudo yum install vim
5.配置顯示行號
vim ~/.vimrc set nu #輸入 set nu 后退出保存
二:安裝Nginx
1.安裝依賴
(1) 安裝nginx
需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝gcc-c++。
(2)PCRE
是一個Perl庫,中文"Perl兼容的正則表達式庫"。安裝Nginx是為了使Nginx支持具備URI重寫功能的rewrite模塊,如果不安裝pcre庫,則Nginx無法使用rewrite模塊功能,Nginx的Rewrite模塊功能幾乎是企業應用必須。
(3)zlib
庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。
(4)OpenSSL
是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,并提供豐富的應用程序供測試或其它目的使用。 nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要安裝 OpenSSL 庫 。
yum -y install gcc gcc-c++ zlib zlib-devel yum -y install pcre pcre-devel openssl openssl-devel
說明: yum安裝方式安裝的pcre版本比較低,不過基本不影響使用
檢查基礎依賴包
上面的依賴安裝完成后可以通過如下命令檢查各個依賴安裝是否成功
rpm -qa pcre pcre-devel rpm -qa zlib zlib-devel rpm -qa openssl openssl-devel rpm -qa pcre pcre-devel
2.編譯安裝Nginx
# 這里我們把安裝包都放到了/usr/src目錄下,便于統一管理 cd /usr/src #切換到軟件包目錄 wget https://nginx.org/download/nginx-1.14.1.tar.gz #下載nginx源碼包 useradd nginx -s /sbin/nologin -M #創建nginx用戶用于管理nginx程序 tar zxvf nginx-1.14.1.tar.gz #解壓nginx源碼包
cd nginx-1.14.1
#預編譯
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx-1.14.1 \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_stub_status_module
make && make install #編譯 和 安裝
cd /usr/local
ln -s nginx-1.14.1 nginx #創建nginx的軟鏈接
安裝說明
--prefix=PATH #設置安裝路勁 --user=USER #進程用戶權限 --group=GROUP #進程用戶組權限 --with-http_stub_status_module #激活狀態信息 --with-http_ssl_module #激活ssl功能
3.配置環境變量
vim /etc/profile export PATH=/usr/local/nginx/sbin:$PATH source /etc/profile
4.配置開機自啟
vim /etc/rc.local # Nginx開機自啟 /usr/local/nginx/sbin/nginx &
5.Nginx常用命令
/usr/local/nginx/sbin/nginx -t # 檢查Nginx配置語法是否有誤 /usr/local/nginx/sbin/nginx #啟動 /usr/local/nginx/sbin/nginx -s stop #立即停止 /usr/local/nginx/sbin/nginx -s quit #平滑停止 /usr/local/nginx/sbin/nginx -s reload #重載配置 /usr/local/nginx/sbin/nginx -s reopen #重開日志
服務啟動檢查
可以通過該命令查詢80端口被誰占用
lsof -i :80
如果無法識別該命令,需要安裝lsof
sudo yum install lsof
6.關閉防火墻
CentOS6: service iptables stop 臨時關閉 chkconfig --level 2345 iptables off 永久關閉
CentOS7:
systemctl stop firewalld.service #令關閉防火墻
systemctl disable firewalld.service #關閉防火墻開機自啟動
通過瀏覽器輸入IP測試是否成功
三:安裝MySQL
1.安裝依賴
(1)cmake是新版MySQL的編譯工具,必須安裝
sudo yum install gcc gcc-c++ cmake ncurses-devel
如果你的系統是CentOS7,你還需要安裝如下依賴
sudo yum install perl perl-devel autoconf
2.編譯安裝MySQL
useradd -s /sbin/nologin -M mysql # 添加MySQL用戶 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.42.tar.gz
tar zxvf mysql-5.6.42.tar.gz
cd mysql-5.6.42
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.42 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.42/tmp/mysql.sock \
-DMYSQL_DATADIR=/usr/local/mysql-5.6.42/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DMYSQL_TCP_PORT=3306
make && make install
3.MySQL配置
cd /usr/local/mysql-5.6.42 chown mysql.mysql /usr/local/mysql-5.6.42/data mkdir tmp chown mysql.mysql /usr/local/mysql-5.6.42/tmp rm -f /etc/my.cnf cp support-files/my-default.cnf /etc/my.cnf scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
4.加入守護進程
cd /usr/local ln -s mysql-5.6.42 mysql cd /usr/local/mysql cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld
5.配置環境變量
vim /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile
6.啟動MySQL
service mysqld start mysql -u root -p #第一次登陸不需要密碼,回車即可 set password for root@localhost = password('root'); #修改密碼
四:安裝PHP
1.安裝依賴
sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel
2.編譯安裝PHP
cd /usr/src wget /tupian/20230522/manual-lookup.php zxvf php-7.2.12.tar.gz
cd php-7.2.12
./configure \
--prefix=/usr/local/php-7.2.12 \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-zlib \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock \
--with-gd \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-openssl \
--with-curl \
--enable-bcmath \
--enable-mbstring \
--enable-static \
--enable-zip \
--enable-sockets \
--enable-xmlmake && make install
3.PHP配置
cd /usr/localln -s php-7.2.12 php
cp /usr/src/php-7.2.12/php.ini-development /usr/local/php-7.2.12/lib/php.inivim /usr/local/php/lib/php.ini
date.timezone = PRC # 修改時區(大約在932行)expose_php = Off # 避免PHP信息暴露在http頭中(大約369行)
display_errors = Off# 生產環境設置為off,開發環境就設置為On,便于調試
說明:設置了dispaly_errors為off后,需要在php-fpm.conf中開啟錯誤日志記錄路徑error_log = log/php-fpm.logcd php
cp etc/php-fpm.conf.default etc/php-fpm.confcd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf# 管理PHP-FPM
vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log #24行這個在php.ini設置display_errors = Off時啟用向進程發送信號,就可以完成進程管理
停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
重啟:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
重新打開日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`如果在編譯PHP時指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的參數,那么在生產中可能會遇到socket連接問題,解決辦法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock
好是在編譯PHP的時候,指定mysql.socket的位置:
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock4.配置環境變量
vim /etc/profile export PATH=/usr/local/php/bin:$PATH source /etc/profile5.配置開機自啟
vim /etc/rc.local # PHP-FPM自動啟動 /usr/local/php/sbin/php-fpm &6.啟動PHP-FPM
cd /usr/local/php sbin/php-fpm # 啟動PHP-FPM ps -e | grep php-fpm7.配置Nginx和PHP關聯
#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 {
use epoll;
worker_connections 1024;
}http {
include mime.types;
default_type application/octet-stream;#隱藏Nginx軟件版本號
server_tokens off;#激活tcp_nodelay功能,提高I/O性能
tcp_nodelay on;# 設置讀取客戶端請求頭數據的超時時間。此處的數值為15,其單位是秒,為經驗參考值
client_header_timeout 15;# 設置讀取客戶端請求體的超時時間
client_body_timeout 15;# 指定響應客戶端的超時時間
send_timeout 25;# 上傳文件大小限制
client_max_body_size 8m;#壓縮配置
gzip on;
gzip_min_length 1k;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/css text/xml text/plain application/javascript;
gzip_vary on;
#include extra/gzip.config;#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;server {
listen 80;
server_name www.nginx.com;
root html/blog/public;
#access_log logs/host.access.log main;location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}#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;
}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}五:CentOS7開機/etc/rc.local不執行問題
CentOS7中,默認開機不再執行/etc/rc.local,查詢/etc/rc.local里的內容可以發現如下描述:
#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In constrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot.翻譯過來就是
#這個文件是為了兼容性的問題而添加的。 # #強烈建議創建自己的systemd服務或udev規則來在開機時運行腳本而不是使用這個文件。 # #與以前的版本引導時的并行執行相比較,這個腳本將不會在其他所有的服務后執行。 # #請記住,你必須執行“chmod +x /etc/rc.d/rc.local”來確保確保這個腳本在引導時執行。所以要解決開機不執行問題,只需要執行下面的命令然后重啟服務器。
chmod +x /etc/rc.d/rc.local完成上面這些步驟,一個LNMP環境就配好啦,重啟服務器即可。
以上是“怎么搭建PHP環境”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!
當前名稱:怎么搭建PHP環境-創新互聯
文章來源:http://m.newbst.com/article32/cegppc.html成都網站建設公司_創新互聯,為您提供Google、ChatGPT、營銷型網站建設、企業網站制作、網站排名、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯