整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Kali與編程:centos7上搭建web服務器進階操作

          . 實驗說明:繼上章節說到的網頁文件默認存放路徑在/var/www/html/下,這章節將帶大家學習網頁文件存放在自定義目錄下該如何正常使用,以及將網站域名設為dns域名。

          2. 實驗環境:準備兩臺centos7虛擬機,都正常配置軟件倉庫、掛載光盤文件、下載補全增強型工具和vim文本編輯器以及都手動修改獲取到的ip地址。一臺作為dns服務器,另一臺作為web服務器。物理機作為客戶端。

          Dns服務器ip地址:192.168.159.129 dns:192.168.159.129

          Apache服務器ip地址:192.168.159.128 dns:192.168.159.129

          客戶端dns:192.168.159.129

          3. 進行實驗

          首先進行dns服務器搭建

          安裝

          修改配置文件

          vim /etc/named.conf

          vim /etc/named.rfc1912.zones

          4. 正、反向配置文件修改,給centos服務器創建一條dns主機記錄

          首先進入/var/named文件夾

          創建正、反向文件副本

          修改正向配置文件

          修改反向配置文件

          5. 重啟dns服務,設為開機啟動,放行防火墻規則

          Systemctl –now enable named

          firewall-cmd --permanent --add-service=dns ; firewall-cmd --reload

          6. 在apache服務器和物理機上進行與dns域名連通信測試

          7. 搭建apache服務器

          安裝軟件包

          新建網頁文件,存放位置自定(當然存放網頁文件的文件夾需要已經存在)

          修改配置文件

          重啟http服務并查看狀態,防火墻規則上放行http服務

          雖然現在服務狀態是活動的,防火墻規則也已經放行http服務,但是還是無法正常訪問網站內容

          8. 解決辦法

          無法訪問的原因是,我們自定義的網頁文件存放文件夾/apache與默認的/var/www/html文件夾的selinux安全上下文屬性不同導致的。

          使用ls命令分別查看/apache和/var/www/html文件夾selinux屬性

          再使用chcon修改/apache與/var/www/html的selinux安全上下文為相同

          重啟httpd服務后再瀏覽器訪問網站

          解決完畢

          還有另一種辦法就是關閉服務器端上的所有selinux

          當然就像我不建議大家直接關閉防火墻那樣,我也不建議大家直接關閉selinux功能,雖然剛開始接觸它可能會被它折磨,但它的確是一個強大的功能。

          學習更多技術干貨,請搜索:Kali與編程

          entOS 搭建LNMP(Linux+Nginx+Mysql+PHP)壞境

          由于網上各種版本新舊不一,而且Linux版本也不盡相同,所以自己寫一遍根據官網的提示自己手動搭建過程。

          看官方文檔很重要,永遠是最新的,至少不會過時。

          1:安裝nginx

          我們采用yum的方式安裝最新版nginx,就兩步即可。最新版本及其他Linux版本可見官方文檔

          官方文檔:http://nginx.org/en/linux_packages.html#stable

          請讀者根據自己的版本選擇配置:

          按官方文檔,選擇自己版本centos可看到步驟:

          1.1 安裝yum-utils

          yum -y install yum-utils

          1.2 配置nginx的yum源

          根據官方文檔創建/etc/yum.repos.d/nginx.repo文件,并且在文件中寫入一下內容。

          vim /etc/yum.repos.d/nginx.repo
          [nginx-stable]
          name=nginx stable repo
          baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
          gpgcheck=1
          enabled=1
          gpgkey=https://nginx.org/keys/nginx_signing.key
          module_hotfixes=true
          [nginx-mainline]
          name=nginx mainline repo
          baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
          gpgcheck=1
          enabled=0
          gpgkey=https://nginx.org/keys/nginx_signing.key
          module_hotfixes=true

          保存退出。

          1.3 最后默認安裝即可,默認安裝的最新的穩定版

          yum -y install nginx

          安裝完成,查看nginx 版本

          nginx -v

          在瀏覽器輸入本地地址

          查看nginx安裝目錄及其他文件位置:

          rpm -ql nginx

          2 :安裝MySQL

          MySQL我選擇免編譯安裝,直接在linux下載,或者下載上傳至Linux。

          現在用最新的MySQL 8.0系列,和最常用的MySQL 5.7系統,選擇適合自己的版本下載。

          最新版本下載參考官方文檔:https://downloads.mysql.com/archives/community/

          所有版本的官方安裝文檔:https://dev.mysql.com/doc/refman/

          我選擇5.7版的最新版是5.7.33版本,Generic(常規大眾版),64位也是目前企業最常用的版本。

          2.1 前期準備:安裝依賴包,創建mysql用戶及用戶組

          沒有這個依賴包,初始化會報錯。

          yum search libaio # 查找依賴包
          yum -y install libaio # 安裝libaio依賴包
          yum -y install libncurses* # 安裝libncurses* 依賴

          創建mysql用戶及用戶組

          groupadd mysql #創建mysql用戶組
          useradd -r -g mysql -s /bin/false mysql #創建系統用戶mysql并加入mysql用戶組

          2.2 linux下載MySQL并解壓到指定目錄

          mkdir /mysql

          下載MySQL

          wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

          解壓MySQL

          tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

          自己選擇好或創建好自己的路徑目錄,我是直接改名為mysql 直接移動到根目錄里

          注:路徑很重要,mysql默認是安裝在/usr/local/mysql路徑,如果不是這個目錄,后面啟動會報錯,需要修改一個腳本文件內容。如果懶得改的直接解壓移動到這個路徑即可

          重命名:

          mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql

          移動到根目錄

          mv mysql /

          進入根目錄的mysql文件夾可以看到這些文件。

          2.3 進入/mysql目錄,創建mysql-files并授權

          在mysql目錄下創建mysql-files目錄,網上絕大部分都是創建data目錄,沒必要還總是報錯,咱們還是安裝官方文檔來更靠譜,后面安裝初始化后自己生成data文件夾。

          5.7官方安裝文檔:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

          創建目錄

          mkdir /mysql/mysql-files

          更改mysql-files權限(網上大多數也是給整個mysql目錄授權,也沒必要,這一個文件即可)

          chown mysql:mysql mysql-files
          chmod 750 mysql-files

          改完后的目錄

          2.4 安裝并初始化

          安裝初始化,注意自己basedir=/mysql 路徑為你自己所設置的mysql路徑。

          ./bin/mysqld --initialize --user=mysql --basedir=/mysql

          初始化安裝生成密碼和data文件夾。初始密碼,也是后面第一次進入mysql的密碼。

          2.5 修改腳本內容啟動數據庫

          修改support-files目錄下的mysql.server腳本文件。

          vim support-files/mysql.server

          修改這兩個變量的路徑為自己設置的路徑即可。

          basedir=/mysql
          datadir=/mysql/data

          測試是否啟動并登錄成功

          啟動數據庫:

          ./support-files/mysql.server start

          啟動成功!!!

          登錄數據庫輸入原始密碼:

          ./bin/mysql -u root -p

          登錄成功,順便把原始密碼改了,在mysql下依次輸入以下命令。

          自己設置自己的密碼,這里我設置的是123456.

          修改密碼:SET PASSWORD = PASSWORD('123456');

          禁用密碼過期:ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

          刷新的系統權限:flush privileges;-

          修改好后,輸入quit; 退出數據庫。

          2.6 將mysql添加進程,添加變量,添加服務

          由于現在我們只能依靠在mysql目錄下的腳本才能啟動,所以需要添加進程到系統進程,并配置環境變量以在命令行模式可直接輸入命令登錄。

          添加進程:

          cp support-files/mysql.server /etc/init.d/mysqld

          添加好后。可以用命令service mysql start開啟服務,service mysql stop關閉服務。

          當然如果我們習慣用systemctl 開啟或者關閉服務。

          chkconfig --add mysql

          這時我們可以用systemctl start mysql.service開啟服務,systemctl stop mysql.service關閉服務了。

          最后我們在/etc/profile里面添加mysql環境變量

          vim /etc/profile

          在末尾添加:(注意你們自己設置的路徑,我的路徑是/mysql/bin)

          export PATH=$PATH:/mysql/bin

          保存!

          source /etc/profile

          更新立即生效。

          這時我們可以直接用

          mysql -u root -p

          登錄mysql了。到此mysql安裝完成!!

          3:PHP安裝

          采用在線安裝的方式,安裝php8.0版本,可自由查看版本并安裝相關版本。用第三方軟件源remi安裝,因為對此源對php有非常好的支持。

          3.1 安裝 epel-release源和 源管理工具yum-utils

          安裝 epel-release源和 源管理工具yum-utils

          yum -y install epel-release yum-utils

          3.2 安裝Remi軟件源

          Remi軟件源官方地址: https://rpms.remirepo.net/

          找到自己的linux版本,我的是Centos8,為linux8,所有安裝

          CentOS8安裝:

          yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

          CentOS7安裝:

          yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

          3.3 啟用remi源php8.0模塊,安裝php及擴展

          注:這里貌似CentOS8要用另一個安裝命令dnf啟用,我用yum是不行的。

          CentOS8啟動php模塊并安裝:

          dnf module list php #查看php可用模塊和版本

          然后我們直接啟用remi源里的remi-8.0模塊,根據需要選擇自己格式的版本,如remi-7.4模塊。

          dnf module enable php:remi-8.0 -y

          然后直接命令安裝默認為php8版本,及其他擴展

          dnf -y install php php-cli php php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis

          CentOS7啟動php模塊并安裝:

          yum啟動php模塊,根據需要選擇自己格式的版本,如remi-php74模塊,就是php7.4版本。:

          yum-config-manager --enable remi-php80 #啟用remi源的php8.0模塊

          注:如果顯示沒有這個命令,則需要先安裝`yum -y install yum-utils` 插件。

          安裝php及相關擴展:

          yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis

          安裝成功:php -v查看版本為php8.0版本

          4. Nginx+PHP文件配置設置

          LNMP架構原理大概:nginx是靜態頁面無法直接在mysql的處理動態數據,所以nginx將動態頁面請求發送給php,php在MySQL處理數據,所以是Nginx+php的配置文件連接設置,和MySQL+php配置文件連接設置。

          4.1 創建www用戶及用戶組,及在自己配置的站點目錄添加php測試頁面

          此用戶需要和php配置文件一致,后續在php配置文件中也要修改此用戶。

          當然有人問為什么要設置www用戶,直接將nginx默認用戶在php設置一樣就行了,當然可以,但是出于安全慣例,相當于你不可能把你服務器root交給每個人來用。

          groupadd www #創建www用戶組
          useradd -g www -s /sbin/nologin www #創建www用戶并加入www用戶組

          我的站點目錄為/根目錄下的www目錄,在www目錄創建index.php文件

          vim /www/index.php

          文件內容為:

          <?php
          phpinfo();
          ?>

          保存退出!!!

          4.2 修改nginx配置文件

          修改nginx主配置文件:

          vim /etc/nginx/nginx.conf

          將默認user nginx; 改為 user www;保存即可。

          user www; #work進程用戶(打工者),root是老板

          修改nginx網站擴展配置,我網站配置名為`www.conf`,修改這個文件即可

          vim /etc/nginx/conf.d/www.conf

          主要是修改兩個方面,1是在index 加上index.php(默認沒有)。2加上location ~ \.php$ {}這個項,為了與php的成功連接。

          注:fastcgi_pass 這個監聽配置需要與php里的監聽配置一直,否則打開頁面報錯An error occurred.

          我裝的php配置文件默認監聽是另一種套接子sock方式listen = /run/php-fpm/www.sock

          所以在php配置文件設置也要改為listen = 127.0.0.1:9000。有些php是把這個注釋掉了,取消注釋即可。

          sock方式和tcp監聽方式優缺點:sock承載壓力較大,但不穩定。tcp監聽壓力正常,但相當穩定。

          
          #配置一個網站,一個server一個網站:
          server {
          listen 80;
          #站點訪問端口,可基于端口(如:8080)訪問,或者基于ip訪問(如10.10.10.10:8080)端口優先server_name
          server_name localhost; #域名
          location / { #/匹配URL直接訪問 后面加上/URI精確匹配,匹配不到404錯誤
          root /www; #站點目錄為/www
          index index.html index.htm index.php; #定義首頁文件 沒有會顯示403拒絕訪問
          }
          error_page 500 502 503 504 /50x.html; #優雅顯示頁面信息
          location = /50x.html {
          root /usr/share/nginx/html; #優雅頁面位置
          }
          location ~ \.php$ {
          root /www;
          fastcgi_pass 127.0.0.1:9000; #nginx通過9000訪問交給PHP處理
          fastcgi_index index.php; #默認php頁面
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          #$document_root為url,$fastcgi_script_name為uri
          include fastcgi_params; #調用fastcgi_params內容
          }
          }

          保存退出!!

          4.3修改php配置文件

          修改www.conf文件,有些是默認修改主配置文件`/etc/php-fpm.conf`也可。我的php-fpm.conf里沒啥東西,沒有用戶組啥之類的,只能在子配置文件`etc/php-fpm.d/www.conf`里面改。

          vim /etc/php-fpm.d/www.conf

          修改用戶及用戶組為www,監聽修改監聽本地127.0.0.1:9000


          user = www
          group = www
          listen = 127.0.0.1:9000


          保存重啟php及nginx。

          systemctl restart php-fpm.service重啟php.

          systemctl restart nginx.service 重啟nginx.

          瀏覽器打開輸入本地地址127.0.0.1顯示php頁面,配置成功。

          5. MySQL+PHP文件配置設置

          其實也不需要修改什么,默認就可以了,就是自己測試php·可否成功連接MySQL。

          5.1 創建php測試頁面

          在自己的站點目錄下修改index.php頁面,本人頁面目錄/www/index.php

          vim /www/index.php

          php頁面測試代碼,主要添加mysql的服務相關信息:

          <?php
          $servername = "127.0.0.1"; #自己mysql的地址,這里為本機地址
          $username = "root"; #mysql的用戶
          $password = "123456"; #mysql的用戶密碼
          try {
          $conn = new PDO("mysql:host=$servername;", $username, $password);
          echo "連接成功";
          }
          catch(PDOException $e)
          {
          echo $e->getMessage();
          }
          ?>


          保存退出!!

          在瀏覽器輸入本地地址127.0.0.1即可看到相關信息。

          連接成功則頁面顯示 “連接成功“`字樣。

          失敗則返回相關信息如:SQLSTATE[HY000] [2002] No such file or directory 失敗檢查數據庫地址用戶密碼即可。

          這時整個LNMP已經搭建成功!把相關網頁上傳至站點目錄即可。

          5.2 MySQL配置文件(自己選擇行配置)

          MySQL默認沒有配置文件,如果需要,自己在/etc創建my.cnf配置文件。

          vim /etc/my.cnf

          常用配置參數:

          文:迷神

          在各種網站項目開發過程都需要生成PDF文件,用于生成顯示pdf。其實,生成pdf文件很多種,一種簡單的方法就是安裝wkhtmltopdf,然后curl訪問網頁生成pdf文件。

          安裝wkhtmltopdf

          下去github上下載下:

          https://github.com/wkhtmltopdf/wkhtmltopdf/

          下載github的問題件
          wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
          解壓文件,
          tar xvfJ wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
          cd wkhtmltox/bin
          復制到bin目錄下,并設置可執行啊。
          sudo mv ./wkhtmltopdf /usr/local/bin/wkhtmltopdf
          sudo chmod +x /usr/local/bin/wkhtmltopdf

          如果部分電腦沒有安裝依賴庫還是需要安裝,可以先執行試試。安裝插件:

          yum install libXrender libXext fontconfig


          執行生成pdf文件:

          wkhtmltopdf http://www。。baidu。。com ./baidu.pdf

          網頁生成了pdf文件

          解決中文亂碼的問題

          解決辦法如下:

          我這里的服務器centos,找windows里的宋體 simsun.ttf,上傳到服務器/usr/share/fonts/里

          /usr/share/fonts/simsun.ttf

          測試解決!

          解決亂碼

          好了,使用wkhtmltopdf生成pdf就這樣了,剩下,使用你們的編程語言調用wkhtmltopdf訪問網頁,保存成pdf文件即可。比如php只要執行下system("wkhtmltopdf http://網頁 ./網頁文件.pdf")


          主站蜘蛛池模板: 国产精品成人一区二区三区| 国产美女视频一区| 在线观看精品视频一区二区三区| 国产一区在线播放| 国产一区二区三区乱码网站| 黑人大战亚洲人精品一区| 国产精品一区二区久久沈樵| 亚洲高清毛片一区二区| 亚洲天堂一区二区三区| 久久国产精品视频一区| 亚洲色欲一区二区三区在线观看| 一区二区网站在线观看| 在线观看一区二区精品视频| 中文字幕无线码一区2020青青| 在线观看午夜亚洲一区| 成人区精品人妻一区二区不卡 | 日本精品一区二区三本中文| 精品成人乱色一区二区| 麻豆aⅴ精品无码一区二区| 亚洲一区二区在线视频| 国产成人AV一区二区三区无码| 日韩AV无码一区二区三区不卡毛片| 人妻体内射精一区二区| 亚洲视频在线一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产精品一区二区不卡| 亚洲天堂一区二区三区四区| 91视频一区二区三区| 亚洲AV无码一区二区三区久久精品 | 亚洲国产精品综合一区在线| 亚洲狠狠狠一区二区三区| 精品国产一区AV天美传媒| 亚洲av无码成人影院一区| 久久一区二区三区精华液使用方法| 在线成人综合色一区| 亚洲国产综合无码一区二区二三区| 国产一区二区三区精品视频| 精品亚洲一区二区| 亚洲熟妇AV一区二区三区宅男| 日本精品高清一区二区2021| 精品国产日韩亚洲一区|