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