国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux網(wǎng)站搭建(nginx+php+mysql)

這篇具有很好參考價(jià)值的文章主要介紹了Linux網(wǎng)站搭建(nginx+php+mysql)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

nginx

安裝nginx服務(wù)器依賴環(huán)境

源碼安裝和yum安裝的區(qū)別

源碼安裝

源碼安裝三步走:

php

下載

安裝所有擴(kuò)展:(php運(yùn)行所需要的環(huán)境)

編輯/etc/php.ini

開啟php-fpm

在html下創(chuàng)建index.php,看一下是否可以網(wǎng)頁中訪問得到它

編輯nginx配置文件

重啟服務(wù)

mysql

安裝mysql

mysql的使用

用nginx服務(wù)器連接mysql數(shù)據(jù)庫

報(bào)錯(cuò)情況

CMS


中間件

web服務(wù)器:nginx(前端網(wǎng)頁)+php

數(shù)據(jù)庫服務(wù)器:mysql

思路:

??????? 先安裝中間件nginx,nginx要采用源碼安裝。安裝按之后啟動(dòng),可以訪問到一個(gè)靜態(tài)初始頁面;然后安裝php(超文本預(yù)處理器,是在服務(wù)器端執(zhí)行的腳本語言,尤其適用于Web開發(fā)并可嵌入HTML中),他的源碼要用rpm安裝,執(zhí)行環(huán)境用yum;最后安裝mysql數(shù)據(jù)庫。全部完成后就可以進(jìn)行連接了。
?

nginx

安裝nginx服務(wù)器依賴環(huán)境

yum -y install? gcc-c++? pcre-devel? zlib-devel

安裝完之后,可以看到下面有六個(gè)包,其中devel是開發(fā)包(看到讓我們選擇那種安裝包的話,一般都選devel)

nginx php,linux,linux,nginx,服務(wù)器

源碼安裝和yum安裝的區(qū)別

①yum安裝相當(dāng)與于一鍵安裝,自動(dòng)幫你解析安裝,解決一切問題

②源碼安裝相當(dāng)于手動(dòng)安裝,路勁什么的都需要自己下載

③源碼安裝沒有寫入系統(tǒng),啟動(dòng)的時(shí)候不能用systemctl來執(zhí)行

源碼安裝

wget https://nginx.org/download/nginx-1.22.1.tar.gz   #獲取源碼
#wget是獲取網(wǎng)上的安裝包

tar -zxvf nginx-1.22.1.tar.gz   #解壓安裝包
#-z是對應(yīng)后面的.gz。如果只是單純的tar,就不用z

獲取解壓完源碼之后就可以看到在家目錄下面出現(xiàn)了這兩文件

nginx php,linux,linux,nginx,服務(wù)器

源碼安裝三步走:

知識點(diǎn):

源碼的安裝一般由3個(gè)步驟組成:配置(configure)、編譯(make)、安裝(make install)。

Configure是一個(gè)可執(zhí)行腳本,它有很多選項(xiàng),在待安裝的源碼路徑下使用命令./configure –help輸出詳細(xì)的選項(xiàng)列表。其中--prefix選項(xiàng)是配置安裝的路徑。

如果不配置 --prefix 選項(xiàng),安裝后:

可執(zhí)行文件默認(rèn)放在/usr /local/bin,

庫文件默認(rèn)放在/usr/local/lib,

配置文件默認(rèn)放在/usr/local/etc,

其它的資源文件放在/usr /local/share,

進(jìn)入到nginx目錄中可以看到下面存在一個(gè)配置文件和一個(gè)可執(zhí)行文件。其中,conf是配置文件,configure是可執(zhí)行文件(用來進(jìn)一步生成可編譯執(zhí)行文件(makefile))

nginx php,linux,linux,nginx,服務(wù)器

?第一步:指定編譯安裝目錄

./configure --prefix=/usr/local/nginx    #指定安裝目錄為/usr/local/nginx
#默認(rèn)情況下不指定安裝路徑的話是默認(rèn)安裝在/usr/local下 

執(zhí)行完configure,在我們指定路徑下進(jìn)行查看,并沒有看到生成的文件夾,因?yàn)檫@個(gè)時(shí)候只是生成可編譯文件(makefile)而已,并沒有開始進(jìn)行編譯

nginx php,linux,linux,nginx,服務(wù)器

可以看到nginx目錄下生成了一個(gè)makefile

nginx php,linux,linux,nginx,服務(wù)器

&&/;連續(xù)執(zhí)行的區(qū)別

&&:先成功執(zhí)行前面的語句,再執(zhí)行后續(xù)語句

;:不管前面的語句是否執(zhí)行成功都執(zhí)行后面的語句

第二步:編譯與安裝

make&&make install    #進(jìn)行編譯并且生成編譯文件
#前面的make就是自動(dòng)對c語言文件進(jìn)行編譯,后面是生成編譯文件  

?要注意進(jìn)行編譯的路徑

nginx php,linux,linux,nginx,服務(wù)器

編譯完成后,在/usr/local中進(jìn)行查看,可以看到多了一個(gè)nginx文件夾

nginx php,linux,linux,nginx,服務(wù)器

?對nginx文件夾進(jìn)行查看,可以下面還有四個(gè)文件

conf:nginx的配置文件(如果用yum安裝的話就是在/etc/conf目錄下)

html:默認(rèn)是nginx的網(wǎng)站根目錄(要看配置文件的內(nèi)容,可在配置文件中進(jìn)行更改)

logs:日志文件

sbin:下面存放著可執(zhí)行命令字nginx(本應(yīng)該放在/目錄下面的sbin文件夾,但是他是使用源碼安裝的,所以sbin放在我們指定的目錄下)

nginx php,linux,linux,nginx,服務(wù)器

nginx的主配置文件

路徑:/usr/local/nginx/conf/nginx.conf

#pid        logs/nginx.pid;    #這個(gè)是詢問是否開啟nginx的pid,如果報(bào)錯(cuò)的話再進(jìn)行開啟

#配置文件分為兩部分,一部分是http,一部分是https
#http
http {
    include       mime.types;    #文件拓展名與文件類型映射表
    default_type  application/octet-stream;    #默認(rèn)文件下載類型
    sendfile        on;           #支持文件發(fā)送下載
    keepalive_timeout  65;        #連接保持超時(shí)時(shí)間
    server {
        listen       80;          #對應(yīng)http使用的80端口
        server_name  localhost;   #網(wǎng)站的名稱
        location / {
            root   html;  #網(wǎng)站的根目錄,對應(yīng)前面看到的文件夾
            index  index.html index.htm;    #網(wǎng)站主頁
        }

nginx php,linux,linux,nginx,服務(wù)器

???? ?? 另外的編譯生成文件方法(不建議)

?????????如果不用make進(jìn)行編譯安裝的話,我們需要在/root/nginx-1.22.1/src/core 下對他的所有c語言帶啊嗎進(jìn)行一行一行的安裝,很麻煩

nginx php,linux,linux,nginx,服務(wù)器

第三步:執(zhí)行開啟nginx

這時(shí)候執(zhí)行nginx指令,用tab鍵發(fā)現(xiàn)不能補(bǔ)齊,說明這個(gè)指令不能被系統(tǒng)所獲取。(按理說ngxin是sbin下面的可執(zhí)行命令字,是可以執(zhí)行的。但是采用的是源碼安裝,這個(gè)命令字并沒有存放在根目錄下的sbin中,所以要讓系統(tǒng)進(jìn)行獲取這個(gè)指令)

配置環(huán)境變量

路徑:/etc/profile
?

export NGINX_PATH=/usr/local/nginx/sbin
export PATH=$PATH:$NGINX_PATH

重新加載環(huán)境變量文件:source /etc/profile

nginx
????????-v??????????????? 查看版本
????????-s stop??????? 強(qiáng)制退出
????????-s quit???????? 正常退出 ??????
????????-s reload???? 重新加載 ?
????????-s reopen??? 重新打開

兩種啟動(dòng)nginx方式:

??????? ①直接到sbin目錄下對nginx進(jìn)行啟動(dòng)

??????? ②nginx -c /usr/local/nginx/conf/nginx.conf
?????????? //指定主配置文件并開啟服務(wù)(標(biāo)準(zhǔn)啟動(dòng)方式)

nginx php,linux,linux,nginx,服務(wù)器

在網(wǎng)頁上跟上服務(wù)器的ip地址就可以訪問的到這個(gè)基礎(chǔ)網(wǎng)頁

nginx php,linux,linux,nginx,服務(wù)器

?

可能出現(xiàn)的問題

1.啟動(dòng)完之后就可以進(jìn)行網(wǎng)頁的訪問。再訪問的時(shí)候出現(xiàn)訪問不到的情況,就是防火墻和selinx沒關(guān)掉,應(yīng)影響到網(wǎng)頁的訪問

2.如果是搭建在云服務(wù)器上面的話,就要在安全組中打開對應(yīng)的端口

php

PHP-fpm //主機(jī)成管理器,在5.多版本就融入到php中間

下載 ?

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#獲取安裝包

yum -y install epel-release-latest-7.noarch.rpm   
#安裝源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#下載他的源碼

安裝所有擴(kuò)展:(php運(yùn)行所需要的環(huán)境)

yum -y install php72w-cli php72w-common php72w-devel php-mysqli php72w-fpm php72w php72w-cli php72w-fpm php72w-curl php72w-gd php72w-mysql php72w-xml php72w-mbstring





#    php72w-cli: 這是用于PHP 7.2版本的命令行接口(CLI),它允許你在命令行中運(yùn)行PHP腳本和命令。

#    php72w-common: 這個(gè)軟件包包含了PHP 7.2版本的共享文件和共享庫,它提供了PHP運(yùn)行所需的一些基本組件。

#    php72w-devel: 這個(gè)軟件包包含了PHP 7.2版本的開發(fā)所需的頭文件和靜態(tài)庫,它用于編譯和構(gòu)建PHP擴(kuò)展或自定義PHP模塊。

#    php-mysqli: 這是一個(gè)提供PHP與MySQL數(shù)據(jù)庫連接功能的擴(kuò)展,它使用MySQLi(MySQL Improved)API,支持更多的功能和特性,包括面向?qū)ο蟮慕涌?、預(yù)處理語句、事務(wù)處理等。

#    php72w-fpm: 這是用于PHP 7.2版本的FastCGI進(jìn)程管理器(FPM),它提供了一種高性能的方式來處理PHP請求,并與Web服務(wù)器(如Nginx或Apache)配合使用。

#    php72w-curl: 這個(gè)軟件包包含了PHP 7.2版本的CURL擴(kuò)展,它允許PHP與URL進(jìn)行交互,支持HTTP、HTTPS、FTP等協(xié)議,用于發(fā)送和接收數(shù)據(jù)。

#    php72w-gd: 這個(gè)軟件包包含了PHP 7.2版本的GD圖像處理庫的擴(kuò)展,它提供了一組函數(shù)來創(chuàng)建、操作和處理圖像,包括縮放、裁剪、添加水印等功能。

#    php72w-mysql: 這是一個(gè)提供PHP與MySQL數(shù)據(jù)庫連接功能的擴(kuò)展,它使用原始的mysql函數(shù)庫進(jìn)行連接和操作。它在舊版本的PHP中很常見,但在較新的PHP版本中已被棄用,推薦使用MySQLi或PDO擴(kuò)展。

#    php72w-xml: 這個(gè)軟件包包含了PHP 7.2版本的XML擴(kuò)展,它提供了一組函數(shù)來處理XML數(shù)據(jù),包括解析XML、創(chuàng)建XML、操作XML節(jié)點(diǎn)等。

#    php72w-mbstring: 這個(gè)軟件包包含了PHP 7.2版本的多字節(jié)字符串處理擴(kuò)展,它提供了一組函數(shù)來處理多字節(jié)字符集,包括字符串截取、編碼轉(zhuǎn)換、字符長度計(jì)算等。




#PHP72w-mysql和php-mysql區(qū)別
#前者是CentOS/RHEL系列的軟件包,后者是Debian/Ubuntu的軟件包



#php72w-mysql和php72w-mysqli區(qū)別
#mysql是舊版,mysqli是新版本,是mysql的更新版,功能更加齊全

編輯/etc/php.ini

short_open_tag = On        #若不開啟,則無法識別php函數(shù)

開啟php-fpm

systemctl start php-fpm  

在html下創(chuàng)建index.php,看一下是否可以網(wǎng)頁中訪問得到它

<?php
phpinfo()
?>

這時(shí)候發(fā)現(xiàn)網(wǎng)頁加載不出來

編輯nginx配置文件

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name; 
                                            #如果不能索引到就加上他的路徑
            include        fastcgi_params;
        }


#在nginx配置文件中把php的#都取消掉,這是為了讓ngxin可以使用php語言
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

nginx php,linux,linux,nginx,服務(wù)器

重啟服務(wù)

nginx -s reload
systemctl restart php-fpm.service

正常可訪問

nginx php,linux,linux,nginx,服務(wù)器

?

mysql

安裝mysql

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar    #獲取安裝包

tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar  #解壓安裝包

rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm  #安裝server版
#用rpm安裝的時(shí)候解決不了環(huán)境依賴問題,在安裝server的時(shí)候會(huì)進(jìn)行報(bào)錯(cuò)。缺少什么環(huán)境就進(jìn)行安裝什么環(huán)境。

nginx php,linux,linux,nginx,服務(wù)器

?在安裝的時(shí)候報(bào)錯(cuò)缺少環(huán)境,就直接后面加上所需要的包就可以(tab補(bǔ)齊)? 可以同時(shí)安裝多個(gè)包

nginx php,linux,linux,nginx,服務(wù)器

?安裝的時(shí)候報(bào)錯(cuò)啟用或者沖突,直接卸載啟用文件就可以

nginx php,linux,linux,nginx,服務(wù)器

沒有報(bào)錯(cuò),安裝完成

阿里云服務(wù)器要安裝

yum install libaio

要實(shí)現(xiàn)站庫分離就要使用兩臺(tái)服務(wù)器,將會(huì)mysql服務(wù)器與另外兩個(gè)分開

mysql的使用

systemctl start mysqld
#啟動(dòng)服務(wù)

grep “password” /var/log/mysqld.log   
#查看初始隨機(jī)生成的密碼

mysql -u root –p   
#連接數(shù)據(jù)庫

use mysql
#要先使用數(shù)據(jù)庫才能進(jìn)行查詢
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
#初次使用數(shù)據(jù)庫的時(shí)候會(huì)報(bào)錯(cuò),要求你修改密碼

alter user 'root'@'localhost' identified by 'zhss@0121Lin';
#初次需要修改密碼

show databases;
#查看數(shù)據(jù)庫

select user,host from mysql.user;
#查詢賬戶信息;

update user set host='%' where user='root';
#將表的host登陸方式從localhost(本地登錄)更新成%(任意方式)
#第一個(gè)user代表user表,第二個(gè)是表中的user字段

nginx php,linux,linux,nginx,服務(wù)器

用nginx服務(wù)器連接mysql數(shù)據(jù)庫

在nginx服務(wù)器的網(wǎng)站根目錄的index.php中進(jìn)行編輯

<?php
$servername = "192.168.100.150";
$username = "root";
$password = "root";
$conn = mysqli_connect($servername,$username,$password);
if($conn->connect_error){
        die("lianjieshibai:".$conn->connect_error);
}
echo "success";
phpinfo();
?>

#或者
#(那三行是用來顯示報(bào)錯(cuò)信息的,做調(diào)試用。映射到公網(wǎng)的話建議刪掉)

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$servername = "localhost";
$username = "root";
$password = "root";
$database = "cms";

$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
    die(" ~^ ~N 失敗 ~Z" . mysqli_connect_error());
}
echo " ~^ ~N  ~H~P ~J~_";

//  ~I  ~L ~U  ~M  ~S ~S~M ~\...

mysqli_close($conn);
?>

這一步做完就可以連接到數(shù)據(jù)庫

nginx php,linux,linux,nginx,服務(wù)器

?

?

報(bào)錯(cuò)情況

第一種

問題:出現(xiàn)這個(gè)情況就是密碼復(fù)雜度問題,需要在mysql進(jìn)行修改

nginx php,linux,linux,nginx,服務(wù)器

alter user 'root'@"%' identified with mysql_native_password by 'yourpassword";        
#修改身份驗(yàn)證插件

第二種

問題:Fatal error: Uncaught Error: Call to undefined function mysql_connect()

????????出現(xiàn)這個(gè)問題的原因是由于php7以后已經(jīng)不支持mysql連接了,解決的辦法也很簡單,更換mysqli/PDO連接(替換mysql_connect()為mysqli_connect())或者更干脆降低php版本

可以先查看下PHP環(huán)境中有沒有裝上MySQL擴(kuò)展,如果沒輸出的話就是沒裝上

php -m | grep mysqli

然后發(fā)現(xiàn)沒輸出東西,發(fā)現(xiàn)是我的mysql沒裝上,重新安裝

yum -y install php72w-mysqli

如果在安裝的時(shí)候出現(xiàn)這情況,就是已經(jīng)存在了并且沖突了

nginx php,linux,linux,nginx,服務(wù)器

CMS

網(wǎng)站源碼(cms)導(dǎo)入(從我的windows桌面導(dǎo)入,直接拉進(jìn)去也行)

sudo scp /mnt/c/Users/Administrator/Desktop/PHPCMS.tar 192.168.100.110:/root/
#后面的:/root/ 是指定傳入的路徑,也可以跟ssh一樣在ip前面加上 用戶@ 指定傳輸用戶
#通過子系統(tǒng)ubuntu從桌面?zhèn)鞯絚entenos,也可以直接拉進(jìn)去

將源碼解壓到網(wǎng)站根目錄

#解壓cms壓縮包
tar -xvf PHPCMS.tar

#移動(dòng)到/usr/local/nginx/html/
mv PHPCMS /usr/local/nginx/html/

修改PHPCMS/includes/db.php

<?php

$db['db_host'] = "localhost";    //數(shù)據(jù)庫服務(wù)器地址
$db['db_user'] = "root";    //賬戶
$db['db_pass'] = "root";    //密碼
$db['db_name'] = "cms";

將cms.sql傳給數(shù)據(jù)庫服務(wù)器 ,這一步是為了在mysql中創(chuàng)建一個(gè)cms數(shù)據(jù)庫,并且查看一下數(shù)據(jù)庫是否創(chuàng)建成功

scp PHPCMS/cms.sql root@192.168.100.150:/root/
#scp 文件 賬戶@IP地址:路徑

mysql -u 賬戶名 -p < cms.sql
#導(dǎo)入數(shù)據(jù)庫

nginx php,linux,linux,nginx,服務(wù)器

然后到這一步,就可以在看到的自己搭建的網(wǎng)站了,如果還是不能查看的到,就要在nginx的配置文件中對php的配置進(jìn)行修改,網(wǎng)站的相對路徑改為絕對路徑,然PHPCMS可以被索引的到

在這里可以跟上PHPCMS的絕對路徑,一般到html就可以,如果還是索引不到的話,在跟上PHPCMS

nginx php,linux,linux,nginx,服務(wù)器

?這是網(wǎng)站搭建的最終效果

nginx php,linux,linux,nginx,服務(wù)器文章來源地址http://www.zghlxwxcb.cn/news/detail-790005.html

到了這里,關(guān)于Linux網(wǎng)站搭建(nginx+php+mysql)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包