Centos6.5 安裝 LAMP

Centos 安裝 LAMPphp

系統: Centos 6.5
Apache 2.4 + PHP 7.2 + Mysql 5.7html

準備工做

  1. centos 查看版本

查看 centos版本 How to Check CentOS Versionpython

cat /etc/redhat-release
cat /etc/centos-release
cat /etc/os-release
  1. 更新yum 源
[vagrant@centos tmp]$ sudo yum update

使用yum安裝 Apache

[vagrant@centos tmp]$ sudo yum install httpd

安裝好查看版本

[vagrant@centos tmp]$ httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jun 19 2018 15:45:13

開啓 apache 自啓動

[vagrant@centos tmp]$ sudo chkconfig httpd on

Apahce 相關命令

sudo service httpd start #啓動apache
sudo service httpd stop # 禁用apache
sudo service httpd restart # 重啓apache
sudo apachectl configtest #測試配置文件的語法是否正確

開放 Apache 經常使用的 80,443端口

開放Apache的 80,443 端口mysql

執行命令:linux

sudo /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo /sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT

保存以前輸入已開放端口號語句的命令laravel

sudo /etc/rc.d/init.d/iptables save

查看打開端口命令redis

sudo service iptables status
sudo service iptables restart #重啓 iptables命令

配置 Apache 配置文件

編輯 /etc/httpd/conf/httpd.conf,禁止列出文件目錄,訪問.env(Laravel的配置文件)格式的文件sql

執行命令:數據庫

sudo vim /etc/httpd/conf/httpd.conf

找到 <Directory "/var/www/html",將 Options Indexes FollowSymLinks改成 Options FollowSymLinks,禁止列出文件目錄apache

在當前組的 </Directory> 以前添加

<Files .env>
    Order allow,deny
    Deny from all
</Files>

禁止訪問.env文件

最後httpd.conf<Directory "/var/www/html">節點的全部內容相似

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
<Files .env>
    Order allow,deny
    Deny from all
</Files>
</Directory>

[vagrant@centos tmp]$ apachectl configtest
httpd: apr_sockaddr_info_get() failed for centos
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

若是出現apr_sockaddr_info_get()的錯誤,

  1. 確認etc/sysconfig/network設定的值
$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos
  1. /etc/hosts追加
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 centos
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  1. /etc/httpd/conf/httpd.conf 修改
#ServerName www.example.com:80
ServerName centos:80

安裝 Mysql 5.7

更新及安裝 mysql 的 yum 源

  1. 官網下載源碼包
[vagrant@centos tmp]$ wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
  1. rpm 安裝 mysql 的 yum 源
[vagrant@centos tmp]$ sudo rpm -Uvh mysql57-community-release-el6-7.noarch.rpm
  1. 打開 mysql-community.repo 文件,查看關於 mysql 的內容,肯定 [mysql57-community]enable的值是1
[vagrant@centos tmp]$ sudo vim /etc/yum.repos.d/mysql-community.repo

安裝 Mysql

執行安裝 mysql 命令

[vagrant@centos tmp]$ sudo yum install mysql-community-server

安裝時,會出現2次確認,都輸入y, 按Enter鍵確認便可

完成後啓動服務

[vagrant@centos tmp]$ sudo service mysqld start

啓動完成後,查看臨時給root用戶生成的密碼

$ sudo grep "password" /var/log/mysqld.log
2018-08-08T02:59:58.687152Z 1 [Note] A temporary password is generated for root@localhost: 3fF4?tujHrfl
2018-08-08T03:00:04.204111Z 2 [Note] Access denied for user 'UNKNOWN_MYSQL_USER'@'localhost' (using password: NO)

第一行 root@localhost: 3fF4?tujHrfl 這個就是數據庫的 root 密碼了

修改初始化密碼

爲了Mysql安全,建議修改 root的初始密碼

執行命令:

[vagrant@centos tmp]$ sudo mysql_secure_installation
  1. 執行上面的命令以後,須要先輸入 root臨時生成的密碼,上一步查詢到
  2. 輸入root目前的密碼以後,須要輸入2次新的root密碼
  3. Change the password for root ? ((Press y|Y for Yes, any other key for No) : 回覆 y來確認修改 root用戶的密碼
  4. Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : 回覆y來繼續下面的步驟
  5. Remove anonymous users? (Press y|Y for Yes, any other key for No): 回覆 y來移除匿名用戶(在生成環境下,你應該刪除它)
  6. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 回覆y來禁用 root 遠程登陸
  7. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 回覆y來移除測試數據庫
  8. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 回覆y來從新加載權限

mysql 的配置文件默認在 /etc/my.cnf

開啓Mysql 自啓動

[vagrant@centos tmp]$ sudo chkconfig mysqld on

安裝 PHP 7.2

若是以前已經安裝過 php 的話,須要先卸載

[vagrant@centos tmp]$ sudo yum  remove php* php-common

更新及安裝 PHP 的 yum 源

[vagrant@centos tmp]$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

修改 yum 源

執行命令:

#安裝第三方源epel-release
[vagrant@centos tmp]$ sudo yum install epel-release
[vagrant@centos tmp]$ sudo vi /etc/yum.repos.d/remi.repo

[remi] 節點下的 enabled的值由0 改成 1

列出 /etc/yum.repos.d文件夾下的文件列表

[vagrant@centos tmp]$ ls -l /etc/yum.repos.d
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo  epel-testing.repo     mysql-community-source.repo  remi-glpi92.repo  remi-glpi94.repo  remi-php70.repo  remi-php72.repo  remi.repo
CentOS-Debuginfo.repo  CentOS-Media.repo      epel.repo          mysql-community.repo  remi-glpi91.repo             remi-glpi93.repo  remi-php54.repo   remi-php71.repo  remi-php73.repo  remi-safe.repo

經過上面的命令結果,能夠按照本身須要安裝的PHP版本,修改對應版本remi-php<version>.repo的文件

由於我須要安裝的是 7.2版本,因此編輯的是 remi-php72.repo

執行命令:

sudo vim /etc/yum.repos.d/remi-php72.repo

[remi-php72] 節點下的 enabled的值由0 改成 1

yum list php

列出全部可安裝的軟件php清單,若是顯示的是 7.x 的話 就沒有問題

開始安裝 php

sudo yum install php php-cli php-curl php-json php-pdo php-mysql php-gd php-bcmath php-xml php-mbstring php-mcrypt php-redis php-crypto

安裝途中,會出現屢次確認,輸入y並按Enter鍵 確認 安裝

安裝完成以後,能夠經過php -v查看 php 版本 或php -m 查看安裝的擴展

配置PHP

配置文件默認是在/etc/php.ini

date.timezone = Asia/Shanghai
upload_max_filesize = 20M
post_max_size = 20M
#生成環境需關掉顯示錯誤信息
display_errors = Off
# 在HTTP返回頭不顯示 PHP 信息
expose_php = Off

安裝Composer

按照 Command-line installation 命令進行安裝

cd /tmp
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# 若是安裝的版本不同,sha384會驗證失敗的狀況
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"
# 全局安裝 composer
sudo mv composer.phar /usr/local/bin/composer
# 查看composer版本
composer -V

Redis的安裝(可選)

進入Redis ,須要不一樣的版本,能夠在官網頁面中進行選擇

上圖框住的部分,鼠標放上去能夠看到連接,鼠標在下載連接上右鍵,選擇"複製連接地址(E)"(Chrome瀏覽器的右鍵菜單選項)

  1. 下載 安裝包
wget http://download.redis.io/releases/redis-4.0.14.tar.gz
  1. 解壓和安裝
tar -xzf redis-4.0.14.tar.gz
cd redis-4.0.14
sudo make
sudo make install

Redis沒有其餘外部依賴,安裝過程很簡單。編譯後在Redis源代碼目錄的src文件夾中能夠找到若干個可執行程序,安裝完後,在/usr/local/bin目錄中能夠找到剛剛安裝的redis可執行文件。以下圖

  1. 啓動 redis

直接執行 redis-server 命令就啓動了

隨開機啓動腳本,在/etc/init.d/文件夾下建立一個redis_端口號的文件,如redis_6379

  1. 建立文件夾
# 建立存放redis配置的文件夾
sudo mkdir -p /etc/redis
# 建立存放redis 數據的文件夾,端口號,默認是6379
sudo mkdir -p /var/redis/端口號
  1. 修改配置文件
# 進入下載 redis-4.0.14.tar.gz 文件時的目錄,複製文件配置模板到 /etc/redis,並重命名爲`6379.conf`
sudo cp redis-4.0.14/redis.conf /etc/redis/6379.conf

首先將配置文件模板(redis-4.0.14/redis.conf)複製到/etc/redis 目錄中,以端口號命名(如「6379.conf」),而後按照下表對其中的部分參數進行編輯。

參數 說明
daemonize yes 使Redis以守護進程模式運行(由no改成yes)
pidfile /var/run/redis_端口號.pid 設置Redis的PID文件位置(默認已經是/var/run/redis_6379.pid,不用修改)
port 端口號 設置Redis監聽的端口號(默認是6379,不用修改)
dir /var/redis/端口號 設置持久化文件存放位置,默認是dir ./,修改成/var/redis/6379
  1. 建立 /etc/init.d/redis_6379 文件並進行配置
sudo vim /etc/init.d/redis_6379

在vim編輯器中填入如下內容

#!/bin/bash
# /etc/init.d/redis_6379

### BEGIN INIT INFO
# Provides: redis_6379
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redis server script
# Description: This service is used to manage redis-server start or stop
### END INIT INFO

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
     start)
          if [ -f $PIDFILE ];
          then
              echo "$PIDFILE exists,redis-server is already running or crashed"
          else
              echo "Starting Redis Server"
              $EXEC $CONF
          fi
        ;;
     stop)
        echo "Stopping Redis Server"
        #killall redis server
        kill $(ps aux | grep -m 1 "${EXEC}" | awk '{ print $2 }')
        ;;
     *)
         echo "Usage: service redis_6379 start|stop"
         exit 1
        ;;
esac
exit 0

保存以後,就能夠經過如下命令來啓動或者中止 redis-server 了

# 啓動redis server
sudo service redis_6379 start
# 中止redis server
sudo service redis_6379 stop
  1. 啓用redis-server開機啓動
sudo chkconfig redis_6379 on

列出redis的啓動信息

chkconfig --list | grep "redis"

若是列表中出現了

redis_6379      0:off   1:off   2:on    3:on    4:on    5:on    6:off

說明開機啓動設置成功了

部署Laravel到生成環境的優化

安裝包

composer install --optimize-autoloader --no-dev

其中,--optimize-autoloader 表示生成優化後的自動加載器,雖然生成過程可能較慢,但換來的是提升運行時的效率。--no-dev 表示不安裝 composer.json 中 require-dev 聲明的擴展包,在生產環境中咱們不須要這些開發依賴。

創建緩存

php artisan optimize
php artisan api:cache
php artisan route:cache
php artisan view:clear
php artisan config:cache

supervisor (可選)

由於 Centos 6.5 經過Yum 安裝的 supervisor 的版本是 2.1

能夠經過yum info supervisor 查詢supervisor的信息

若是已經過 yum 命令安裝了supervisor 2.1,能夠經過yum remove supervisor*來卸載。

安裝 supervisor

# 查看python版本
[vagrant@centos tmp]$  python -V
Python 2.6.6

指定安裝supervisor 3.1.3版本,這個版本能夠用python2.6,直接裝了就能用。能夠pip install supervisor==3.1.3或者easy_install supervisor==3.1.3

我是經過下面安裝的:

easy_install supervisor==3.1.3

配置

  1. 生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
  1. 編輯配置文件
sudo vim /etc/supervisord.conf

找到

;[include]
;files = relative/directory/*.ini

改成

[include]
;files = relative/directory/*.ini
files = /etc/supervisor/conf.d/*.conf

保存以後,建立包含的目錄

sudo mkdir -p /etc/supervisor/conf.d

之後工做的配置文件就能夠放在這個目錄裏了

  1. 啓動supervisord

使用 /etc/supervisord.conf 配置文件來啓動supervisord 服務

/usr/bin/supervisord -c /etc/supervisord.conf
  1. 經常使用的命令小記
#查看狀態
supervisorctl status
# 添加或者修改了配置文件,須要從新加載
supervisorctl reload
# 重啓全部
supervisorctl restart all

碰見的問題

Apache error: default virtualhost overlap on port 443或者80

Apache error: _default_ virtualhost overlap on port 443或者80,修改 httpd.conf文件,大概在 1002行左右添加

NameVirtualHost *:80
#若是須要使用到https,須要添加 443端口
NameVirtualHost *:443

You don't have permission to access /index.html on this server.

當確認了 DocumentRoot/home/testdomain/public_html三級文件夾和index.html的權限都是 755(drwxrwxr-x)以後,訪問仍是 You don't have permission to access /index.html on this server.

能夠檢查Centos的selinux狀態,嘗試關閉SELinux訪問以後,應該就能夠訪問到

查看 SELinux狀態

[vagrant@centos tmp]$ getenforce
Enforcing #是啓用的,若是返回Disabled,就是已經禁用了

臨時關閉

sudo setenforce 0

永久關閉

vi /etc/selinux/config

SELINUX=enforcing改成SELINUX=disabled
設置後須要重啓才能生效

References
  1. CentOS6.5 下升級 PHP七、MySQL5.7 文章安裝部分文字描述主要參考
  2. centos 6.5 防火牆開放指定端口 簡單快速設置好 iptables
  3. Centos查看端口占用狀況和開啓端口命令 開放端口的內容規則,可是新增的規則必定要放在-A FORWARD開頭這1行的前面,否則重啓 iptables 不會生效
  4. CentOS / httpd > Starting httpd: httpd: apr_sockaddr_info_get() failed for [hostname].localdomain centos httpd 重啓顯示 httpd: apr_sockaddr_info_get() failed for的解決參考
  5. CentOS 7.X 關閉SELinux SELinux關閉參考
  6. CentOS下Redis的安裝 redis 安裝參考
  7. linux chkconfig 使用說明 瞭解chkconfig使用頗有幫助
  8. (上線時清緩存)laravel 5.1 的程序性能優化(配置文件) - 簡書輕鬆部署 Laravel 應用 | 《10. 手動部署 - 生產環境的必要優化》
  9. centos6.5安裝supervisor Centos 6.5下安裝 supervisor 3 的解決方法和centos下安裝supervisor的步驟詳解 很詳細
相關文章
相關標籤/搜索