Web development - 網站架設教學,CentOS 7 架設 LAMP

2020-12-28 總經理 Vince Wu

    Article outline

# 開啟網路 (若原有網路則無需設定 ex: AWS, GCP 等雲端主機)

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

$ sudo systemctl restart network

找到設定值ONBOOT=no,把設定值改成yes,並重啟網路

 

# 安裝 Apache

$ sudo yum -y install httpd

 

#  加入  EPEL 套件庫

$ sudo yum -y install epel-release

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

 

# 更新套件

$ sudo yum -y update

 

# 安裝 PHP

#依照要安裝的PHP版本號做修改

$ sudo vi /etc/yum.repos.d/remi-php73.repo

#將檔案內的enabled = 0 修改成 enabled = 1

$ sudo yum install php php-common  php-pdo php-gd php-xml -y

# 依需求,編輯 /etc/php.ini 設定檔

$ sudo vi /etc/php.ini

 

date.timezone = "Asia/Taipei" #修改台灣時區

max_execution_time = 300

short_open_tag = On

max_input_time = 180

memory_limit = 512M

post_max_size = 512M

upload_max_filesize = 100M

max_file_uploads = 50

max_input_vars = 1500

 

# 視情況可修改設定檔 (ex: 修改目錄, 修改權限... 等)

$ sudo vi /etc/httpd/conf/httpd.conf

 

ex: 開啟 .htaccess 作用

找到 DocumentRoot /var/www/html下的Directory,並將AllowOverride改為 All

<Directory /var/www/html/>

AllowOverride All

</Directory>

 

# 重啟apache 並設定開機自動啟動

$ sudo systemctl restart httpd

$ sudo systemctl enable httpd

 

#允許Http和MySQL通過防火牆 (需已裝過 firewall) 

ps. 若為AWS, GCP等雲端主機則使用控制台的 Security Group 設定即可

$ sudo firewall-cmd --permanent --zone=public --add-service=http

$ sudo firewall-cmd --permanent --zone=public --add-service=https

$ sudo firewall-cmd --permanent --zone=public --add-service=mysql

$ sudo firewall-cmd --reload

$ sudo firewall-cmd --zone=public --list-all

 

# 此時可建立一個 PHP 測試檔至 網站目錄 (/var/www/html) 查看是否正常運行

$ sudo vi /var/www/html/test.php

 

加入 MariaDB 套件庫 :

$ sudo vi /etc/yum.repos.d/MariaDB.repo

 

# 貼上以下內容並儲存

 

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.4/centos7-amd64

Gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

Gpgcheck = 1

 

$ sudo yum -y install mariadb-server

$ sudo systemctl start mariadb    # 啟動 mariadb

$ sudo systemctl enable mariadb # 開機自動啟動

$ sudo mysql_secure_installation  # 初始化設定

 

該設定時會詢問幾個問題,簡述如下:

* Enter current password for root (enter for none):輸入root密碼,第一次設定時預設值是空的,所以直接按Enter即可,接著會詢問是否要設定root密碼,請輸入「Y」進行設定

* Remove anonymous users? [Y/n]:是否要移除匿名使用者?「Y」

* Disallow root login remotely? [Y/n]:是否關閉 root 遠端登功能?依需求決定

* Remove test database and access to it? [Y/n]:是否要移除測試的資料庫?建議選擇「Y」來移除

* Reload privilege tables now? [Y/n]:是否要重新載入表格權限?建議選擇「Y」

 

# 安裝phpMyAdmin

$ sudo yum install epel-release

$ sudo yum -y install phpmyadmin

 

# 編輯 phpMyAdmin 設定檔

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

 

# 限定特定ip連線:找到 "Require ip" 及 "Allow from",將 127.0.0.1 改成指定 ip

<IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       Require ip 220.135.36.15

       Require ip ::1

     </RequireAny>

</IfModule>

<IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 220.135.36.15

     Allow from ::1

</IfModule>

 

# 不限定 ip 連線:註解掉"Require ip" 新增一行 Require all granted

<IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       Require all granted

     </RequireAny>

</IfModule>

<IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Allow from all

     Require all granted

</IfModule>

 

 

# 重新啟動 Apache

$ sudo systemctl restart httpd

 

# 關閉SELINUX,避免產生權限問題

$ sudo setenforce 0  # 暫時性設定

$ sudo vi /etc/selinux/config # 永久性設定

=> 修改 SELINUX = disabled

 

#設定檔案權限

$ sudo usermod -a -G apache root # 加入root帳號到apache群組

$ sudo chown -R root:apache /var/www

$ sudo chmod 2775 /var/www

$ find /var/www -type d -exec sudo chmod 2775 {} \;

$ find /var/www -type f -exec sudo chmod 0664 {} \;

 

 

 

 

 


Customer Service

Customer Service

LINE Contact