Centos 安裝 LAMPphp
系統: Centos 6.5
Apache 2.4 + PHP 7.2 + Mysql 5.7html
查看 centos版本 How to Check CentOS Versionpython
cat /etc/redhat-release cat /etc/centos-release cat /etc/os-release
[vagrant@centos tmp]$ sudo yum update
[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
[vagrant@centos tmp]$ sudo chkconfig httpd on
sudo service httpd start #啓動apache sudo service httpd stop # 禁用apache sudo service httpd restart # 重啓apache sudo apachectl configtest #測試配置文件的語法是否正確
開放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命令
編輯 /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()
的錯誤,
etc/sysconfig/network
設定的值$ cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=centos
/etc/hosts
追加127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/httpd/conf/httpd.conf
修改#ServerName www.example.com:80 ServerName centos:80
[vagrant@centos tmp]$ wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
[vagrant@centos tmp]$ sudo rpm -Uvh mysql57-community-release-el6-7.noarch.rpm
mysql-community.repo
文件,查看關於 mysql 的內容,肯定 [mysql57-community]
的 enable
的值是1
[vagrant@centos tmp]$ sudo vim /etc/yum.repos.d/mysql-community.repo
執行安裝 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
root
臨時生成的密碼,上一步查詢到root
目前的密碼以後,須要輸入2次新的root密碼Change the password for root ? ((Press y|Y for Yes, any other key for No) :
回覆 y
來確認修改 root
用戶的密碼Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :
回覆y
來繼續下面的步驟Remove anonymous users? (Press y|Y for Yes, any other key for No):
回覆 y
來移除匿名用戶(在生成環境下,你應該刪除它)Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
回覆y
來禁用 root
遠程登陸Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
回覆y
來移除測試數據庫Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
回覆y
來從新加載權限mysql 的配置文件默認在 /etc/my.cnf
[vagrant@centos tmp]$ sudo chkconfig mysqld on
若是以前已經安裝過 php 的話,須要先卸載
[vagrant@centos tmp]$ sudo yum remove php* php-common
[vagrant@centos tmp]$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
執行命令:
#安裝第三方源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 的話 就沒有問題
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
查看安裝的擴展
配置文件默認是在/etc/php.ini
date.timezone = Asia/Shanghai upload_max_filesize = 20M post_max_size = 20M #生成環境需關掉顯示錯誤信息 display_errors = Off # 在HTTP返回頭不顯示 PHP 信息 expose_php = Off
按照 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 ,須要不一樣的版本,能夠在官網頁面中進行選擇
上圖框住的部分,鼠標放上去能夠看到連接,鼠標在下載連接上右鍵,選擇"複製連接地址(E)"(Chrome瀏覽器的右鍵菜單選項)
wget http://download.redis.io/releases/redis-4.0.14.tar.gz
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可執行文件。以下圖
直接執行 redis-server
命令就啓動了
隨開機啓動腳本,在/etc/init.d/
文件夾下建立一個redis_端口號
的文件,如redis_6379
# 建立存放redis配置的文件夾 sudo mkdir -p /etc/redis # 建立存放redis 數據的文件夾,端口號,默認是6379 sudo mkdir -p /var/redis/端口號
# 進入下載 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 |
/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
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
說明開機啓動設置成功了
安裝包
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
由於 Centos 6.5 經過Yum 安裝的 supervisor 的版本是 2.1
能夠經過yum info supervisor
查詢supervisor
的信息
若是已經過 yum 命令安裝了supervisor
2.1,能夠經過yum remove 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
echo_supervisord_conf > /etc/supervisord.conf
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
之後工做的配置文件就能夠放在這個目錄裏了
使用 /etc/supervisord.conf
配置文件來啓動supervisord
服務
/usr/bin/supervisord -c /etc/supervisord.conf
#查看狀態 supervisorctl status # 添加或者修改了配置文件,須要從新加載 supervisorctl reload # 重啓全部 supervisorctl restart all
Apache error: _default_ virtualhost overlap on port 443或者80
,修改 httpd.conf
文件,大概在 1002行左右添加
NameVirtualHost *:80 #若是須要使用到https,須要添加 443端口 NameVirtualHost *:443
當確認了 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訪問以後,應該就能夠訪問到
[vagrant@centos tmp]$ getenforce Enforcing #是啓用的,若是返回Disabled,就是已經禁用了
sudo setenforce 0
vi /etc/selinux/config
將SELINUX=enforcing
改成SELINUX=disabled
設置後須要重啓才能生效
-A FORWARD
開頭這1行的前面,否則重啓 iptables 不會生效httpd: apr_sockaddr_info_get() failed for
的解決參考