CentOS LA(N)MP
CentOS 安裝 PHP7
下載HongKong
tar -zxvf mirror
安裝相關的編譯器
sudo yum install g++ gcc libxml2-devel
編譯安裝 php
首先進入 解壓後的php 文件夾
安裝配置:./configure --prefix=/usr/local/php --enable-fpm
如果沒有報錯就可以編譯 編譯安裝
make && make install
配置一條軟鏈接
sudo ln -sv /usr/local/php7/bin/php /usr/bin/php
測試如下:
[php-7.2.1] php -v PHP 7.2.1 (cli) (built: Jan 21 2018 07:36:15) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
CentOS 安裝 MySQL5.7
配置YUM源
在MySQL官網中下載YUM源rpm安裝包
下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
如上則說明源安裝成功,
選擇要安裝的版本
sudo vim /etc/yum.repos.d/mysql-community.repo
其中
enabled=1
表示將被安裝及更新。開始安裝
yum install mysql-community-server
啟動MySQL服務
sudo systemctl start mysqld
查看服務狀態
sudoi systemctl status mysqld
設置守護進程,以便開機啟動服務
sudo systemctl enable mysqld
sudo systemctl daemon-reload
修改root本地登錄密碼
grep ‘temporary password‘ /var/log/mysqld.log
使用獲取的臨時密碼登錄更改
root
用戶密碼ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘xxxxxxx‘;
或者
set password for ‘root‘@‘localhost‘=password(‘xxxxxxx‘);
當然上述的密碼肯定是不會通過的。mysql5.7默認安裝了密碼安全檢查插件
(validate_password)
,默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
密碼校驗規則如下
SHOW variables LIKE ‘%password%‘;
:validate_password_policy
密碼策略,默認為MEDIUM策略validate_password_dictionary_file
密碼策略文件,策略為STRONG才需要validate_password_length
密碼最少長度validate_password_mixed_case_count
大小寫字符長度,至少1個validate_password_number_count
數字至少1個validate_password_special_char_count
特殊字符至少1個共有以下幾種密碼策略:
策略 檢查規則 0 or LOW Length 1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters 2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file - MySQL官網密碼策略詳細說明
修改密碼策略
在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略
# 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典文件 validate_password_policy=0
如果不需要密碼策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
重新啟動mysql服務使配置生效:
sudo systemctl restart mysqld
添加遠程登錄用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,為了安全起見,我添加一個新的帳戶:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
更改默認字符編碼
- 查看默認的編碼是什麽
SHOW variables LIKE '%character%';
更改
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
重啟服務,後查看字符集的變化
- 默認配置文件路徑:
- 配置文件:
/etc/my.cnf
- 日誌文件:
/var/log//var/log/mysqld.log
- 服務啟動腳本:
/usr/lib/systemd/system/mysqld.service
socket文件:
/var/run/mysqld/mysqld.pid
每次修改完配置文檔後,都需要重啟服務以生效!
CentOS 安裝 Apache2
從這裏下載
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.29.tar.gz
cd httpd-2.4.29
編譯安裝
./configure --prefix=/usr/local/apache2
沒有apr和apr-until
cd wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gz wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-util-1.5.3.tar.gz tar zxvf apr-1.5.0.tar.gz tar zxvf apr-util-1.5.3.tar.gz mv apr-1.5.0 apr mv apr-util-1.5.3 apr-util mv apr apr-util httpd-2.4.29/srclib/ [~] tree -L 1 httpd-2.4.29/srclib httpd-2.4.29/srclib ├── apr ├── apr-util └── Makefile.in # 安裝依賴 wget https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz tar -zxf pcre-8.38.tar.gz cd pcre-8.38/ ./configure --prefix=/usr/local/pcre-8.38 make sudo make install
所有的依賴完成,開始編譯Apache2
cd httpd-2.4.29 ./configure --prefix=/usr/local/apache -with-pcre=/usr/local/pcre-8.38/bin/pcre-config \ --with-included-apr make sudo make install
驗證
cd /usr/local/apache/bin/ sudo ./apachectl -k start
可能會出現錯誤如下:
[bin] sudo ./apachectl -k start [sudo] whoami 的密碼: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
這是一個配置虛擬主機的問題,可以暫時不用管!此時應當開啟服務器的80端口先!
[bin] sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [bin] sudo systemctl restart firewalld.service # 重啟防火墻
最後在本地機器中訪問虛擬機
CentOS 安裝 NGINX
nginx源碼包(nginx.org)
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.38
pcre源碼目錄使用相對路徑,因為一開始下載在root目錄之下了,使用絕對路徑有權限問題!
make
make install
安裝驗證
ps命令查看一下apache ,httpd,已經有進程在為apache工作了,用暴力的方式殺掉已啟動的apache進程
啟動
sudo ./nginx
?
安裝php-fpm
啟動fpm 提示125錯誤
找到125行,普通模式下:125得到這一行
include=/usr/local/php7/etc/php-fpm.d/*.conf
說明目錄
/usr/local/php7/etc/php-fpm.d/
之下沒有符合規則的文件
繼續安裝`sudo ./php-fpm`
配置NGINX-PHP
[sbin] cd /usr/local/nginx/conf # 配置文件存放目錄 [conf] ll 總用量 60 -rw-r--r--. 1 root root 1077 1月 21 11:08 fastcgi.conf -rw-r--r--. 1 root root 1077 1月 21 11:08 fastcgi.conf.default -rw-r--r--. 1 root root 1007 1月 21 11:08 fastcgi_params -rw-r--r--. 1 root root 1007 1月 21 11:08 fastcgi_params.default -rw-r--r--. 1 root root 2837 1月 21 11:08 koi-utf -rw-r--r--. 1 root root 2223 1月 21 11:08 koi-win -rw-r--r--. 1 root root 3957 1月 21 11:08 mime.types -rw-r--r--. 1 root root 3957 1月 21 11:08 mime.types.default -rw-r--r--. 1 root root 2656 1月 21 11:08 nginx.conf -rw-r--r--. 1 root root 2656 1月 21 11:08 nginx.conf.default -rw-r--r--. 1 root root 636 1月 21 11:08 scgi_params -rw-r--r--. 1 root root 636 1月 21 11:08 scgi_params.default -rw-r--r--. 1 root root 664 1月 21 11:08 uwsgi_params -rw-r--r--. 1 root root 664 1月 21 11:08 uwsgi_params.default -rw-r--r--. 1 root root 3610 1月 21 11:08 win-utf
sudo vim nginx.conf
在server之中添加這麽一段:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root /usr/local/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; index index.php; }
保存退出即可。這麽一段的意思是如果有本機訪問php文件,通過是9000端口。
測試在
html
目錄中新建index.php
其內容如下建立一個軟鏈接
sudo ln -sv /usr/local/nginx/sbin/nginx /usr/bin/nginx
重啟服務
sudo ./nginx -s reload
FPM 配置
進行配置文件存放目錄
cd /usr/local/php7/etc/php-fpm.d
查看配置文件
cat www.conf
子進程用戶和用戶組
user = nobody group = nobody
子進程數量
pm = dynamic 設置靜態還是動態解析 pm.max_children = 5 最大子進程數 pm.start_servers = 2 啟動時先啟動兩個進程
當為static靜態時,子進程數量永遠是固定的即為pm.start_servers
CentOS LA(N)MP