【推薦】Linux 簡單部署LAMP

Linux 簡單部署LAMP:

實驗環境:

28.png

1、主機系統Centos6.7_X86_64

2、DNS&CA:192.168.3.10

3、LAMP安裝方式為rpm

4、主機IP:192.168.3.11提供web站點:

    http://wp.neolinux.com          #phpMyAdmin-4.0.5-all-languages  

    https://pma.neolinux.com             #wordpress-3.3.1-zh_CN.zip

    http://dz.neolinux.com              #Discuz_X3.2_SC_UTF8.zip

5、安裝過程:

    準備DNS環境

    YUM方式安裝httpd,php,mysql

    配置httpd

    配置mysql

    測試httpd—php—mysql的關聯

    準備測試網站文件

    配置網站文件

    測試訪問

    SSL配置

    測試效果

=================================

一、準備DNS環境:

[root@ns1 ~]# vi /var/named/neolinux.com.zone
    pma     IN      A       192.168.3.20
    wp      IN      A       192.168.3.20
    dz      IN      A       192.168.3.20
[root@ns1 ~]# ping wp -c 1
[root@ns1 ~]# ping pma -c 1
[root@ns1 ~]# ping dz -c 1

二、YUM方式安裝LAMP:

[root@case1 ~]# yum install httpd php php-mysql mysql-server php-mbstring php-mcrypt php5-zts -y
    #httpd:2.2.15-53.el6.centos
    #php:5.3.3-47.el6
    #mysql-server:5.1.73-7.el6

三、配置httpd:

[root@case1 ~]##mkdir -p /www/vhosts/{wp,pma,dz}
[root@case1 ~]# mv /etc/httpd/conf.d/welcome.conf{,.bk}
[root@case1 ~]#vi /etc/httpd/conf/httpd.conf
    ServerName localhost:80
    KeepAlive on
    Listen 192.168.3.11:80
    #DocumentRoot "/var/www/html"
    NameVirtualHost 192.168.3.11:80
    
    <VirtualHost 192.168.3.11:80>
        ServerAdmin wpadmin@neolinux.com
        DocumentRoot /www/vhosts/wp
        ServerName wp.neolinux.com
        ErrorLog logs/wp-error_log
        CustomLog logs/wp-access_log common
    </VirtualHost>

    <VirtualHost 192.168.3.11:80>
        ServerAdmin pmaadmin@neolinux.com
        DocumentRoot /www/vhosts/pma
        ServerName pma.neolinux.com
        ErrorLog logs/pma-error_log
        CustomLog logs/pma-access_log common
    </VirtualHost>

    <VirtualHost 192.168.3.11:80>
        ServerAdmin dzadmin@neolinux.com
        DocumentRoot /www/vhosts/dz
        ServerName dz.neolinux.com
        ErrorLog logs/dz-error_log
        CustomLog logs/dz-access_log common
    </VirtualHost>
[root@case1 conf]# httpd -t
Syntax OK
[root@case1 conf]#

四、配置MYSQL:

[root@case1 ~]# service mysqld start
[root@case1 ~]# mysql
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | test               |
    +--------------------+
    3 rows in set (0.00 sec)
    
    mysql> use mysql;
    Database changed
    mysql> SELECT user,host,password FROM user;
    +------+--------------------+----------+
    | user | host               | password |
    +------+--------------------+----------+
    | root | localhost          |          |
    | root | case1.neolinux.com |          |
    | root | 127.0.0.1          |          |
    |      | localhost          |          |
    |      | case1.neolinux.com |          |
    +------+--------------------+----------+
    5 rows in set (0.00 sec)
    mysql> DELETE FROM user where user='';
    Query OK, 2 rows affected (0.01 sec)
    mysql> DELETE FROM user where user='root' and host='case1.neolinux.com';
    Query OK, 1 row affected (0.01 sec)
    mysql> UPDATE user SET password=PASSWORD("manager1") where user='root';
    Query OK, 2 rows affected (0.00 sec)
    Rows matched: 2  Changed: 2  Warnings: 0
     mysql> CREATE DATABASE wpdb;
     Query OK, 1 row affected (0.00 sec)
     mysql> GRANT ALL ON wpdb.* TO 'wpuser'@'localhost' IDENTIFIED BY 'wppasswd';
     Query OK, 0 rows affected (0.00 sec) 
     mysql> GRANT ALL ON wpdb.* TO 'wpuser'@'127.0.0.1' IDENTIFIED BY 'wppasswd';
     Query OK, 0 rows affected (0.00 sec)
     mysql> FLUSH PRIVILEGES;
     Query OK, 0 rows affected (0.00 sec)

五、測試httpd—php—mysql關聯

    HTTPD與PHP有三種方式關聯:module,CGI,FPM(fast CGI),這里我們是采用module方式

[root@case1 ~]# rpm -ql php    #檢查PHP安裝的文件
/etc/httpd/conf.d/php.conf     #在HTTPD配置目錄下生成了PHP.CONF的配置文件,當我們啟動HTTPD時,會加載此配置文件,這樣PHP就以模塊化的方式與HTTP結合工作
/usr/lib64/httpd/modules/libphp5.so    #HTTP2.2與PHP關聯的模塊,
/var/lib/php/session
/var/www/icons/php.gif
[root@case1 ~]# less /etc/httpd/conf.d/php.conf
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so        #這里說明了,當HTTP工作在prefork模式當中,需要用到libphp5.so這樣的PHP模塊,默認PHP安裝
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so    #當HTTP工作在worker模式當中,需要用libphp5-zts.so模塊,在php5-zts當中
</IfModule>
[root@case1 ~]# vi /www/vhosts/wp/index.php       #建立測試頁面 
    <?php
      $link = mysql_connect('127.0.0.1','root','manager1');
      if ($link)
        echo "sucess";
      else
        echo "failure";
      mysql_close();
      phpinfo();
    ?>
[root@case1 ~]# service httpd start    #啟動httpd服務
Starting httpd:                                            [  OK  ]
[root@case1 ~]#

14.png

六、準備測試網站文件

[root@case1 src]# ll
-rw-r--r--   1 root  root 12486773 Jun 14 19:20 Discuz_X3.2_SC_UTF8.zip
-rw-r--r--   1 root  root  8004371 Jun 14 19:20 phpMyAdmin-4.0.5-all-languages.zip
-rw-r--r--   1 root  root  4657514 Jun 14 19:20 wordpress-3.3.1-zh_CN.zip
[root@case1 src]# unzip wordpress-3.3.1-zh_CN.zip
[root@case1 src]# unzip Discuz_X3.2_SC_UTF8.zip
[root@case1 src]# unzip phpMyAdmin-4.0.5-all-languages.zip
[root@case1 src]# ls
phpMyAdmin-4.0.5-all-languages.zip  upload   wordpress    Discuz_X3.2_SC_UTF8.zip  phpMyAdmin-4.0.5-all-languages  readme                              utility  wordpress-3.3.1-zh_CN.zip
[root@case1 src]# cp -r wordpress/* /www/vhosts/wp/
cp: overwrite `/www/vhosts/wp/index.php'? y
[root@case1 src]# cp -r upload/* /www/vhosts/dz/
[root@case1 src]# cp -r phpMyAdmin-4.0.5-all-languages/* /www/vhosts/pma/
=====WP配置=====
[root@case1 wp]# cp wp-config-sample.php wp-config.php    #網頁開發者定義好了關聯mysql的數據配置文件
[root@case1 wp]# vi wp-config.php
    /** WordPress 數據庫的名稱 */
    define('DB_NAME', 'wpdb');        #我們之前在MYSQL定義好的數據庫名字,wpdb
    
    /** MySQL 數據庫用戶名 */
    define('DB_USER', 'wpuser');    #管理wpdb數據庫的帳號,root也可以
    
    /** MySQL 數據庫密碼 */
    define('DB_PASSWORD', 'wppasswd');    #管理wpdb數據庫的密碼,
    
    /** MySQL 主機 */
    define('DB_HOST', '127.0.0.1');    #localhost也可以

七、配置各網站并測試

登錄網站:

15.png

16.png

=====PMA=====

[root@case1 ~]# cd  /www/vhosts/pma/libraries/        #phpmyadmin配置默認登錄的信息配置文件位置
[root@case1 libraries]# vi config.default.php        #配置文件還有很多可以針對連接MYSQL做限制
    $cfg['Servers'][$i]['host'] = '127.0.0.1';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = 'manager1';

登錄網頁測試:http://pma.neolinux.com        

17.png

=====DZ=====直接打開http://dz.neolinux.com  安裝DZ即可

安裝DZ

18.png

19.png

需要創建與修改文件屬性

[root@case1 dz]# chmod 777 config data data/cache data/avatar data/plugindata data/download data/addonmd5 data/template data/threadcache data/attachment 
data/attachment/album data/attachment/forum data/attachment/group data/log uc_client/data/cache uc_server/data/ uc_server/data/cache uc_server/data/avatar 
uc_server/data/backup uc_server/data/logs uc_server/data/tmp uc_server/data/view

20.png

21.png

22.png

23.png

DZ安裝完成:

24.png

八、SSL配置https://pma.neolinux.com      

    SSl配置需要安裝mod_ssl,然后創建密鑰,創建證書請求,并于CA簽署

[root@case1 ~]# yum install mod_ssl

CA配置:(192.168.3.10),也是DNS服務器

[root@ns1 CA]# touch /etc/pki/CA/{index.txt,serial}    #我遇到的情況是在沒有此兩個文件的情況下,給客戶端簽發證書的時候,會報錯。
[root@ns1 CA]# (umask 077; openssl genrsa -out ./private/cakey.pem 2048)    #創建密鑰(私鑰,公鑰是從私鑰中提取出來),
[root@ns1 CA]# openssl req -new -x509 -key ./private/cakey.pem -out ./cacert.pem -days 3650    #為CA自己簽署證書,casert.pem根據openssl的配置文件/etc/pki/tls/openssl.cnf,必須放在此目錄,否則會出錯
You are about to be asked to enter information that will be incorporated                       #或者自己修改配置文件也可
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GD
Locality Name (eg, city) [Default City]:ShenZhen
Organization Name (eg, company) [Default Company Ltd]:neolinux
Organizational Unit Name (eg, section) []:neolinux
Common Name (eg, your name or your server's hostname) []:ns1.neolinux.com
Email Address []:caadmin@neolinux.com                                
[root@ns1 CA]#

web服務器生成證書請求:

[root@case1 ~]# mkdir /etc/httpd/ssl
[root@case1 ~]# cd /etc/httpd/ssl
[root@case1 ssl]# (umask 077; openssl genrsa -out ./httpd.pem 2048)
Generating RSA private key, 2048 bit long modulus
.....................+++
...........+++
e is 65537 (0x10001)
[root@case1 ssl]# openssl req -new -key ./httpd.pem -out ./httd.csr -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GD
Locality Name (eg, city) [Default City]:ShenZhen
Organization Name (eg, company) [Default Company Ltd]:neolinux
Organizational Unit Name (eg, section) []:neolinux
Common Name (eg, your name or your server's hostname) []:pma.neolinux.com    #web服務器名字,客戶端訪問服務器的名字
Email Address []:pmaadmin@neolinux.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@case1 ssl]#

web服務器將證書簽署請求發送到CA服務器

[root@case1 ssl]# scp httpd.csr root@192.168.3.10:/tmp
The authenticity of host '192.168.3.10 (192.168.3.10)' can't be established.
RSA key fingerprint is 42:b8:1a:11:b4:43:da:8d:5b:5a:2b:1b:35:ab:64:56.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.3.10' (RSA) to the list of known hosts.
root@192.168.3.10's password: 
httpd.csr                                                                                         100% 1066     1.0KB/s   00:00    
[root@case1 ssl]#

CA服務器簽署請求,在把簽署的證書發送至客戶端:

[root@ns1 CA]# openssl ca -in /tmp/httpd.csr -out ./certs/pma.neolinux.com.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Jun  8 21:42:38 2016 GMT
            Not After : Jun  8 21:42:38 2017 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = GD
            organizationName          = neolinux
            organizationalUnitName    = neolinux
            commonName                = pma.neolinux.com
            emailAddress              = pmaadmin@neolinux.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                26:A8:87:EC:9E:48:1D:EB:02:4C:7B:A3:0F:BC:7E:ED:AC:AC:02:5E
            X509v3 Authority Key Identifier: 
                keyid:BD:DF:31:79:2D:BC:8E:7A:8C:94:07:C4:28:EC:9A:5B:8C:F1:27:AB
Certificate is to be certified until Jun  8 21:42:38 2017 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@ns1 CA]# 
[root@ns1 CA]# scp certs/pma.neolinux.com.crt root@192.168.3.11:/etc/httpd/ssl
root@192.168.3.11's password: 
pma.neolinux.com.crt                                                                  100% 4651     4.5KB/s   00:00    
[root@ns1 CA]#

配置SSL服務器:

[root@case1 ssl]# vi /etc/httpd/conf.d/ssl.conf
    <VirtualHost pma.neolinux.com:443>
    DocumentRoot "/www/vhosts/pma"
     ServerName pma.neolinux.com:443
    SSLCertificateFile /etc/httpd/ssl/pma.neolinux.com.crt
    SSLCertificateKeyFile /etc/httpd/ssl/httpd.pem

25.png

將CA簽署自己的證書,傳送至測試客戶端并且安裝在受信任的證書頒發機構:

26.png

重新登錄網頁檢查:

27.png

SHA1谷歌瀏覽器會認為是不安全的。

pma.neolinux.com既然已經采用ssl加密,那么我們應該把如下注釋:

#<VirtualHost 192.168.3.11:80>
#    ServerAdmin pmaadmin@neolinux.com
#    DocumentRoot /www/vhosts/pma
#    ServerName pma.neolinux.com
#    ErrorLog logs/pma-error_log
#    CustomLog logs/pma-access_log common
#</VirtualHost>

實驗告一段落

原創文章,作者:nice_neo_linux,如若轉載,請注明出處:http://www.www58058.com/18254

(0)
nice_neo_linuxnice_neo_linux
上一篇 2016-06-22
下一篇 2016-06-22

相關推薦

  • 第四周-grep正則表達式簡單應用

    復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 && chmod 700 -R /home/tuser1 編輯/etc/g…

    Linux干貨 2016-08-02
  • N25第四周博客作業

    第四周博客作業 1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。      3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的i…

    Linux干貨 2016-12-19
  • Linux的用戶組和權限管理之特殊權限及ACL的使用

    用戶組和權限管理 一、了解和使用批量新建用戶和批量修改用戶密碼: ##用戶創建的模板和配置文件的存放位置:/etc/default/useradd;/etc/skel/* ;/etc/login.defs## 批量新建用戶(newusers):適合用于新老機器轉換時,遷移系統上的用戶。 使用格式: newusers  passwd  fi…

    Linux干貨 2016-08-04
  • mageedu_20160802

     用戶的管理權限設置與更改以及ACL的存在及其實用意義      一.用戶的管理權限如何設置與更改以及umask值的含義    由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置?!?/p>

    Linux干貨 2016-08-03
  • 第十一周作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 一次通信加密過程: 發送方: 1.使用單向加密算法提取生成數據特征碼; 2.使用自己的私鑰加密特征碼附加在數據后面; 3.生成用于對稱加密的臨時密鑰; 4.用此臨時密鑰加密數據和已經使用私鑰加密后的特征碼; 5.使用接受方的公鑰加密此臨時密鑰,附加在對稱密鑰后的數據后方; 接受方: 1.使用自己的私鑰解密加密的…

    2017-10-02

評論列表(1條)

  • stanley
    stanley 2016-06-22 15:43

    圖文并茂,突顯認真特質。專業!

欧美性久久久久