環(huán)境:
版本 | IP地址 | 源碼包版本 |
---|---|---|
CentOS7.5_mysql | 192.168.111.3 | mysql-5.7.24.tar.gz,cmake-3.13.1.tar.gz,boost_1_59_0 |
Centos7.5_httpd | 192.168.111.4 | apr-1.6.5,apr-util-1.6.1,httpd-2.4.37 |
Centos7.5_php | 192.168.111.5 | php-7.3.1 |
目錄
一、安裝配置MySQL
二、安裝配置httpd
三、安裝配置PHP
一、安裝配置MySQL
[root@localhost ~]# yum -y install ncurses-devel #這個是cmake的依賴包
- 安裝MySQL
[root@localhost ~]# tar xf cmake-3.13.1.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/cmake-3.13.1/ [root@localhost cmake-3.13.1]# ./configure && gmake && gmake install #這步時間較長 [root@localhost cmake-3.13.1]# useradd -M -s /sbin/nologin mysql #創(chuàng)建一個程序用戶并且指定參數(shù) [root@localhost cmake-3.13.1]# mkdir /usr/local/boost #創(chuàng)建一個目錄,并將boost_1_66_0.tar.gz解壓后放到這個目錄里 [root@localhost ~]# tar zxf boost_1_59_0.tar.gz -C /usr/local/boost/ [root@localhost ~]# tar xf mysql-*.tar.gz -C /usr/src/ #解壓MySQL包 [root@localhost boost_1_59_0]# cd /usr/src/mysql-5.7.24/ [root@localhost mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA _CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install #這步時間較長 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #數(shù)據(jù)庫程序安裝目錄 -DDEFAULT_CHARSET=utf8 #指定字符集編碼 -DDEFAULT_COLLATION=UTF8_GENERAL_CI #默認的字符集校對規(guī)則,utf8_general_ci適用于utf-8字符集的通用規(guī)則 -DWITH_EXTRA_CHARSETS=all #指定額外支持的字符集編碼 -DSYSCONFDIR=/etc #指定配置文件存放目錄 [root@localhost mysql-5.7.24]# cd /usr/local/mysql/ [root@localhost mysql]# chown -R mysql:mysql * #將該目錄下的所有文件和目錄的屬主和屬組修改為mysql
- 配置MySQL
[root@localhost mysql]# vim /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid
- 初始化數(shù)據(jù)庫
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize --user #指定用戶身份運行 --datadir #指定安裝目錄 --basedir #指定數(shù)據(jù)目錄 執(zhí)行該命令后注意會出現(xiàn)下面這一行,密碼是最后的字符,保存好,待會兒可以進行修改 2019-04-18T08:06:48.532352Z 1 [Note] A temporary password is generated for root@localhost: 4PUsoq3O=rjs
- 設(shè)置環(huán)境變量
[root@localhost mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@localhost mysql]# . /etc/profile
- 服務(wù)啟動文件
[root@localhost mysql]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh #將配置文件添加到系統(tǒng)服務(wù) [root@localhost mysql]# chmod +x /usr/local/mysql/bin/mysqld.sh [root@localhost data]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql PIDFile=/usr/local/mysql/data/mysqld.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Execute pre and post scripts as root PermissionsStartOnly=true # Needed to create system tables #ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid #注意這里要加上 --daemonize # Use this to switch malloc implementation #EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false [root@localhost data]# systemctl start mysqld [root@localhost data]# systemctl enable mysqld [root@localhost data]# mysqladmin -u root -p4PUsoq3O=rjs password 123456 #修改密碼,-p后為舊密碼,即初始化時出現(xiàn)的哪個,后面為新密碼,有空格 [root@localhost data]# mysql -u root -p123456 #使用新密碼,登錄數(shù)據(jù)庫,-p后無空格 mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) #給用戶授權(quán)遠程連接,稍后在別的服務(wù)器上可以通過PHP使用該用戶及密碼
二、安裝配置httpd
- 安裝
[root@localhost ~]# useradd -r -s /sbin/nologin -M apache #創(chuàng)建用戶 [root@localhost ~]# ls anaconda-ks.cfg apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.37.tar.gz initial-setup-ks.cfg [root@localhost ~]# yum -y install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel #安裝依賴 [root@localhost ~]# mv apr-1.6.5 apr [root@localhost ~]# tar zxf apr-util-1.6.1.tar.gz [root@localhost ~]# mv apr-util-1.6.1 apr-util #配置所需的包 [root@localhost ~]# tar zxf httpd-2.4.37.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/httpd-2.4.37/ [root@localhost httpd-2.4.37]# mv /root/{apr-util,apr} srclib/ [root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-includ ed-apr=/root/apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make && make install
- 配置
修改配置文件 [root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/httpd.conf 171 User apache 172 Group apache 202 ServerName 192.168.111.4:80 #也可填自身域名,并將注釋刪除 259 <IfModule dir_module> 260 DirectoryIndex index.html index.php 261 </IfModule> #添加PHP的 484 # Virtual hosts 485 Include conf/extra/httpd-vhosts.conf #啟用虛擬主機配置 119 LoadModule proxy_module modules/mod_proxy.so 123 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #取消注釋 [root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #將原來文件內(nèi)容刪除 <VirtualHost 192.168.111.4:80> DocumentRoot "/usr/local/httpd/htdocs" ServerName www.join.com ErrorLog "/usr/local/httpd/logs/error_log" CustomLog "/usr/local/httpd/logs/access_log" common <Directory "/usr/local/httpd/htdocs"> Options None AllowOverride None Require all granted </Directory> ProxyRequests Off #關(guān)閉代理請求 ProxyPassMatch ^/(.*.php)$ fcgi://192.168.111.5:9000/usr/local/httpd/htdocs/$1 #訪問PHP結(jié)尾的網(wǎng)頁,匹配PHP地址和目錄以及端口 </VirtualHost> [root@localhost httpd-2.4.37]# vim /usr/lib/systemd/system/httpd.service #服務(wù)啟動配置文件 [Unit] #控制單元的定義 Description=The Apache HTTP Server #設(shè)置服務(wù)單元描述字符串 After=network.target #After:設(shè)置服務(wù)單元的啟動先后順序。(如,httpd.service單元文件中出現(xiàn)“After=network.target”表示先“network.target”后 “httpd.service“;出現(xiàn)”Before“則 相反順序啟動) [Service] #服務(wù)定義 Type=forking #設(shè)置服務(wù)進程的啟動類型。為forking是需同時設(shè)置PIDFile配置項,以幫助systemd精確定位到服務(wù)的主進程。 PIDFile=/usr/local/httpd/logs/httpd.pid #設(shè)置服務(wù)的守護進程的PID文件 ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS #設(shè)置服務(wù)啟動時執(zhí)行的命令 ExecReload=/bin/kill -HUP $MAINPID #設(shè)置服務(wù)重新加載時執(zhí)行的命令 KillMode=process #設(shè)置在單元停止時,殺死進程的方法;process表示僅殺死主進程。 Restart=on-failure #設(shè)置服務(wù)進程正常退出、異常退出、被殺死、超時時候,是否重啟服務(wù)。on-failure表示異常退出重啟。 RestartSec=42s #重啟服務(wù)錢暫停多長時間,默認100ms [install] #安裝部分 WantedBy=graphical.target #設(shè)置該服務(wù)所在的(target)運行目標。WantedBy=graphical.target,是指httpd所在的運行目標是圖形界面多用戶系統(tǒng);改配置項還有multi-user.target(非圖形界>面多用戶系統(tǒng)) [root@localhost httpd-2.4.37]# systemctl start httpd [root@localhost httpd-2.4.37]# systemctl enable httpd
三、安裝配置PHP
- 安裝
[root@localhost ~]# yum install -y pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel #安裝依賴包 [root@localhost ~]# tar zxf php-7.3.1.tar.gz -C /usr/src/ [root@localhost php-7.3.1]# cd /usr/src/php-7.3.1/ [root@localhost etc]# ./configure --prefix=/usr/local/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mb string --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo && make && make install #編譯安裝 [root@localhost php-7.3.1]# cp php.ini-production /etc/php.ini #生成配置文件 [root@localhost php-7.3.1]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #生成服務(wù)文件 [root@localhost php-7.3.1]# chmod +x /etc/init.d/php-fpm [root@localhost php-7.3.1]# chkconfig --add php-fpm #添加到服務(wù)啟動 [root@localhost php-7.3.1]# useradd -r -s /sbin/nologin -M apache #創(chuàng)建運行用戶 [root@localhost php-7.3.1]# cd /usr/local/php/etc/ [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf [root@localhost etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf #php-fpm配置文件 [root@localhost etc]# vim php-fpm.d/www.conf 23 user = apache 24 group = apache #修改用戶和組 36 listen = 192.168.111.5:9000 #監(jiān)聽的地址 [root@localhost etc]# vim php-fpm.conf 17 pid = run/php-fpm.pid #將前面;號去掉(取消注釋) [root@localhost etc]# mkdir -pv /usr/local/httpd/htdocs mkdir: 已創(chuàng)建目錄 "/usr/local/httpd" mkdir: 已創(chuàng)建目錄 "/usr/local/httpd/htdocs" #創(chuàng)建之前在httpd服務(wù)器上指定的目錄,存放動態(tài)網(wǎng)頁 [root@localhost ~]# /etc/init.d/php-fpm start Starting php-fpm done #啟動php [root@localhost ~]# netstat -lnpt | grep php tcp 0 0 192.168.111.5:9000 0.0.0.0:* LISTEN 54111/php-fpm: mast
四、測試
PHP上新建如下測試文件,測試數(shù)據(jù)庫連通性 [root@localhost etc]# vim /usr/local/httpd/htdocs/mysql.php <?php $link=mysqli_connect('192.168.111.3','root','123456'); #MySQL數(shù)據(jù)庫的主機地址,登錄數(shù)據(jù)庫的用戶和密碼,注意不是系統(tǒng)用戶和密碼 if($link) echo "<h1>完全分離成功<h1>"; mysqli_close($link); ?>
over……