摘要:軟件環境,下載地址,下載地址,下載地址,下載地址在運行所有命令之前,請執行由于采用源碼包編譯安裝,所以需要一個編譯器,如果提示為找到編譯器,那么請執行命令安裝。
A. 軟件環境
Linux ubuntu 16.04 LTS ,下載地址
Nginx nginx-1.12.0,下載地址
PHP php-7.1.4,下載地址
MySQL mysql-5.7.18,下載地址
在運行所有命令之前,請執行 apt-get update
由于采用源碼包編譯安裝,所以需要一個 c 編譯器,如果提示為找到 c 編譯器,那么請執行 sudo apt-get install gcc 命令安裝 c compiler。但是你可能會碰到仍然找不到 c compiler cc 的情況,請執行:apt-get install build-essential
編譯安裝所需要的軟件包,需要 make 依賴:
sudo apt-get install make
nginx 依賴的環境包:
Pcre pcre-8.40,下載地址(有可能出現安裝了也仍然提示未找到,apt-get install libpcre3-dev,詳情請看)
Pcre2 pcre2-10.23,下載地址
zLib zlib-1.2.11,下載地址
php 依賴的環境包:
libssl-dev,安裝方法:apt-get install libssl-dev
libxml2-dev,安裝方法:apt-get install libxml2-dev
libcurl4-gnutls-dev,安裝方法:sudo apt-get install libcurl4-gnutls-dev
libzip-dev 安裝方法:apt install libzip-dev
php gd 庫需要的依賴:
libpng-dev (apt-get install libpng-dev)
libjpeg-dev(apt-get install libjpeg-dev)
libxpm-dev(apt-get install libxpm-dev)
freetype-官網下載,無需如此麻煩 apt-get install libfreetype6-dev
另外,如果缺少什么 .h 這類的頭文件,請根據錯誤提示,例如 apt-get install libfreetype* 或 *freetype* 這樣安裝解決!
系統升級到 ubuntu 17.07 php 升級到 php-7.1.8 這個時候會報錯:libcurl 問題 find /usr -iname "*curl*" // 創建一個軟連接(系統升級導致 curl 默認路徑改了,php 找不到了.....) ln -s /usr/include/x86-linux-...../curl /usr/include/curl
php 編譯安裝擴展 phpize 命令 依賴的依賴包
m4,安裝方法:apt-get install m4
autoconf,安裝方法:apt-get install autoconf
mysql 依賴的包:
libaio1,安裝方法:apt-get install libaio1
如果出現 libpcre.so.1 找不到的錯誤,請手動鏈接:sudo ln -s /usr/local/lib/libpcre.so.1 /lib/libpcre.so.1
B. 安裝Linux系統 C. 安裝環境所需的依賴包 D. 安裝 Nginxsudo tar -zxvf nginx-1.12.0.tar.gz cd nginx-1.12.0 sudo ./configure # 這個目錄要自己事先創建好 --prefix=/usr/local/WebEnvironment/Nginx/Web-1.12.0/Nginx-1.12.0 # 支持 tcp/udp 負載均衡 --with-stream sudo make sudo make install設置 nginx.conf 文件
// 修改運行用戶 user root; // 修改日志文件路徑 error_log logs/error.log; http { // 加大上傳文件大小限制 client_max_body_size 2048M; // 加大 nginx 等待 php cgi響應的時間 fastcgi_read_timeout 3600s; // 新增自定義配置文件路徑(免得在默認配置文件中新增數據) include "vhost/*.conf"; }
然后在 vhost 目錄下,創建 www.conf 配置文件:
server { server_name test.com; listen 80; index index.html; root /myself/web/test; location / { autoindex on; } }E. 測試 Nginx
cd /usr/local/WebEnvironment/Nginx/Web-1.12.0/Nginx-1.12.0/conf sudo gedit nginx.conf # 修改配置文件,添加 域名(具體看 windows 下 nginx.conf 配置文件) sudo gedit /etc/hosts # 修改 hosts 文件,添加相應域名 cd ../sbin sudo ./nginx # 即可!不要 sudo start ./nginx ,他會提示報錯的。
瀏覽器打開域名查看結果。
F. 安裝PHP-7.1.4tar -zxvf php-7.1.4.tar.gz cd php-7.1.4 sudo ./configure // php 主體文件所在目錄 --prefix=/usr/local/WebEnv/php-7.1.4 // 默認配置文件在 ./lib 目錄下 // 注意這里是目錄!! // 請不要使用這個編譯選項,php 安裝完成后,請使用 php --ini // 查看配置文件路徑,然后修改。即推薦使用默認路徑 // --with-config-file-path=/usr/local/webEnv/php-7.1.4 --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-tsrm-pthreads --with-curl --with-gd // 注意以下四個選項,需要提前安裝相關依賴! // 最后 freetype 這個選項,請使用 find / -iname "freetype*" 來查找具體位置 // 以下注釋掉的 php 編譯選項不再需要,php 會自動查找 // --with-png-dir=/usr/lib // --with-jpeg-dir=/usr/lib // --with-xmp-dir=/usr/lib // --with-freetype-dir=/usr/local/include/freetype2 --enable-mbstring --enable-ftp --enable-pcntl --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-zip --enable-sockets --enable-mysqlnd --enable-bcmath --enable-maintainer-zts --enable-fpm sudo make sudo make install修改 php.ini
需要復制 php 壓縮包解壓后的 php.ini-production 到 /usr/local/WebEnvironment/PHP-7.2.0/lib/php.ini
// 增加上傳文件大小 post_max_size = 2048M // 單個上傳文件的最大大小 upload_max_filesize = 10M // 單次最大上傳文件數量 max_file_uploads = 200 // 設置擴展路徑 extension_dir = "/usr/local/WebEnvironment/PHP-7.2.0/extensions" // 添加自定義擴展 extension = redis.so // php 事件擴展 extension = ev.so extension = gd.so // 設置時區 date.timezone = PRC // 設置 php 最大占用內存 memory_limit = 512M // 打開錯誤提示 display_errors = On
基本 ok。
G. 安裝 MySQL-5.7.18以下方式非源碼編譯安裝,無法指定安裝目錄!如果需要指定安裝目錄,請查看 mysql-8.x 源碼編譯安裝
tar -zxvf mysql-5.7.18.tar.gz mv mysql-5.7.18 /usr/local/mysql cd /usr/local // 它本身沒有 data 目錄,需要自行創建(更高版本已經有 data 目錄,無需重復創建) sudo mkdir -m 755 data cd bin // 初始化 Data 目錄內容 sudo ./mysqld --initialize-insecure // 啟動,必須以 root 身份啟動 sudo ./mysqld --user=root ----------- 另行啟動一個 terminal --------------------------------- // 設置密碼 sudo ./mysqladmin -u root password 123456 // 登錄測試 mysql -u root -p // 配置文件(自己創建 my.cnf,默認文件名,配置文件路徑:etc 目錄下,可以是 /etc,也可以是 /usr/local/mysql/etc) sudo mkdir - m 755 /usr/local/mysql/etc // 編輯配置文件 sudo gedit /usr/local/mysql/etc/my.cnf // 配置文件內容(設置編碼) [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8H. nginx 添加虛擬主機
nginx.conf 中設置的 include vhost/* 路徑
cd conf/vhost sudo vim vhost.conf // 添加如下內容,保存 server { server_name test.com; root /var/Website/Test; index index.php index.html; charset utf-8; location / { // 這邊配置成單一入口訪問(例如你用的PHP框架是 Laravel 就要求要單一路口) // 這邊的含義是: // $uri 如果是一個文件,直接返回 // $uri/ 如果是一個目錄,直接返回 // 最后一個參數表示重定向! // 否則返回 /index.php?$query_string; try_files $uri $uri/ /index.php?$query_string; } location ~ .php(.*) { // php 處理程序監聽的 tcp 端口 fastcgi_pass 127.0.0.1:9000; // 確定腳本名稱 # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; // 傳遞請求參數 # fastcgi_param QUERY_STRING $query_string; // 必須要包含 fastcgi_params 預定義參數 include fastcgi_params; } } server { server_name pma.com; root /var/Website/TestOther; index index.html; charset utf-8; location / { } # 靜態資源處理 # 例如:http://test.com/test.jpg # 他會從 /data 目錄下獲取,而不是從 /var/Website/TestOther 目錄下獲取 # 注意匹配順序,正則優先,然后 前綴 location ~ .(gif|jpg|png)$ { root /data; } }I. php-fpm 解釋
參考文章
cgi、fastcgi、php-cgi、php-fpm 之間的聯系和區別
配置文件路徑:
// php-fpm 配置文件 etc/php-fpm.conf.default // 進程池配置文件路徑 etc/php-fpm.d/www.conf.default // php.ini 配置文件(要從解壓出來的壓縮包根目錄下拷貝重命名) etc/php.ini
注意了,php-fpm.conf 配置文件是 php-fpm 程序的配置文件,www.conf 是 php-fpm.conf 配置文件的一部分(擴展),只是 php 將其獨立出來了。他們是一個整體,這邊修改的是 www.conf:
user = root # 這邊可以新創建用戶,也可以直接使用 root 用戶(省事,我就 root 用戶了) group = root # 同上 listen = 127.0.0.1:9000 # 只能有一個 listen(我被坑的最慘的部分!以為可以 listen 多個!實際上不能!)J. 設置軟連接
sudo ln -s /path/to/php/sbin/php-fpm /bin/php-fpm sudo ln -s /path/to/nginx/sbin/nginx /bin/nginx sudo ln -s /path/to/mysql/bin/mysqld /bin/mysqldK. 啟動測試
Nginx
// windows 下啟動 start nginx // linux 下啟動 sudo nginx # 啟動 sudo nginx -s reload # 重新啟動(重載配置文件) sudo nginx -s stop # 快速停止 sudo nignx -s quite # 優雅停止 sudo nginx -s reopen # 重新打開日志文件(要在 nginx 啟動的狀態下執行才有效)
PHP:
// 指定配置文件啟動 // -c 指定 php 運行時配置文件 // -y 指定 php-fpm 運行時配置文件 // -R 可選,運行 root 身份運行 php-fpm sudo php-fpm -c php.ini -y php-fpm.conf -R // 通常的啟動方式應該如下: sudo php-fpm -R
mysql
sudo mysqld --user=root
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39536.html
摘要:如果不用我們可能將上述講的命令每搭建一次就需要執行一遍,有沒有能統一管理的有,就是在環境搭建中的作用快速創建鏡像,快速創建并運行容器,實現統一管理。 前言 初學者在dcoker學習過程中,可能不太清楚docker中那么多的命令,參數,工具在lnmp環境搭建中起了什么作用,下面跟著我來熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 鏡像,容器,倉庫 鏡像:Docker 鏡像...
摘要:學習心得前言耗時一周零三天,終于用搭建起自己的開發環境。來搭建一下環境,然后,桌面沒了。作為過來人,我只想說,一定要只做一件事,不要過多的去研究,我們只是想搭建本地運行環境。 docker學習心得 前言 耗時一周零三天,終于用docker搭建起自己的開發環境。詳細過程:請參考分解docker在lnmp環境搭建中的作用showImg(https://segmentfault.com/im...
摘要:博客搬家原地址原發表時間本文討論使用安裝包構建網站底層服務后,包括域名解析,的管理等的一系列填坑歷程。域名解析問題相關首先將本人的網站信息公布如下域名地址主機提供方搬瓦工域名托管及解析阿里云萬網本文之后的內容均是基于以上信息。 「博客搬家」 原地址: CSDN 原發表時間: 2016-11-16 本文討論使用 LNMP 安裝包構建網站底層服務后,包括域名解析,MySQL 的管理等...
閱讀 2461·2023-04-26 02:18
閱讀 1262·2021-10-14 09:43
閱讀 3822·2021-09-26 10:00
閱讀 6945·2021-09-22 15:28
閱讀 2535·2019-08-30 15:54
閱讀 2600·2019-08-30 15:52
閱讀 474·2019-08-29 11:30
閱讀 3465·2019-08-29 11:05