CentOS 7下搭建LAMP并把MySQL单独分离
CentOS 7下搭建LAMP并把MySQL單獨分離
原文:http://www.linuxidc.com/Linux/2017-05/144037.htm
環(huán)境:
系統(tǒng):CentOS-7-x86_64-Minimal-1611
Apache:httpd-2.4.25.tar
MySQL:mysql-5.7.16.tar
php:php-5.6.30.tar
192.168.57.144:安裝MySQL
192.168.57.143:安裝Apache+php
?
搭建LAMP平臺并實現(xiàn)PHP和MySQL讀寫分離 見? http://www.linuxidc.com/Linux/2017-05/144029.htm
創(chuàng)建相關目錄
創(chuàng)建用戶
解壓安裝包
編譯安裝
(初始化)
鏈接bin目錄
拷貝腳本文件,主配置文件
配置主配置文件
腳本自啟動
驗證服務
驗證對接服務
?
?
一·編譯安裝Apache
?
yum install lrzsz
cd /usr/local/
tar -zxf httpd-2.4.25.tar.gz
?
yum install gcc*? gcc-c++*
yum install apr* apr-util apr-devel pcre* pcre-devel openssl* openssl-devel -y
?
編譯安裝
./configure --prefix=/apps/svr/httpd --enable-so --enable-rewrite --enable-charset-list? --enable-cgi
或者:
./configure????????????????????????? \
??????? --prefix=/apps/svr/httpd? \
--sysconfdir=/apps/conf/\
??????? --enable-so??????????????? \
??????? --enable-ssl????????????? \
??????? --enable-cgi????????????? \
??????? --enable-rewrite????????? \
??????? --with-zlib??????????????? \
??????? --with-pcre??????????????? \
??????? --with-mpm=prefork??????? \
??????? --enable-modules=most????? \
??????? --enable-mpms-shared=all?
echo $?
make
make install
?
配置http環(huán)境變量
ln -s /apps/svr/httpd/bin/* /usr/local/bin/
或者:cat >export PATH=$PATH:/apps/svr/httpd/bin >>/etc/profile
檢查配置文件
apachectl -t
?
?
設置apache為Linux服務并實現(xiàn)開機自啟動
cp /apps/svr/httpd/bin/apachectl /etc/init.d/httpd
或者:設置Apache為Linux服務并實現(xiàn)開機自啟動?
mv /etc/rc.d/init.d/apachectl /etc/rc.d/init.d/httpd
chmod +x /etc/init.d/httpd
?
vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:2345 80 80
#description:httpd
#
?
chkconfig:2345 80 80
2345:是服務識別參數(shù),在級別2345中啟動
第一個80:是該服務在第80個啟動
第二個80:是該服務在第80個關閉
description:httpd????? :服務描述信息
?
chkconfig --add httpd
chkconfig httpd on
chkconfig --list httpd
?
?
cat /etc/hosts
127.0.0.1? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1??????? localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.57.141 www.a.org
?
?
cat? /apps/svr/httpd/conf/httpd.conf
#ServerName www.example.com:80
ServerName www.a.org
?
?
service? httpd restart
netstat -anpt |grep httpd
?
關閉數(shù)據(jù)庫
systemctl stop firewalld
?
?
http://www.linuxidc.com/Linux/2017-05/144038.htm
編譯安裝mysql-5.7.16
?
groupadd -r mysql
useradd -r -g mysql -s /bin/false -M mysql
?
創(chuàng)建mysql安裝文件、數(shù)據(jù)庫存儲文件、my.cnf文件
mkdir -p /apps/svr/mysql
mkdir -p /apps/mysqldb/data
mkdir -p /apps/conf
?
?
yum install -y gcc wget make cmake zlib-devel ncurses-devel bison gcc-c++ automake autoconf? imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses-devel libxml2-devel expat-devel openssl openssl-devel
?
下載Boost_1_59_0.tar.gz
wget? http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar zxvf boost_1_59_0.tar.gz
?
下載mysql-5.7.13.tar.gz
wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
tar zxvf mysql-5.7.17.tar.gz
?
cd mysql-5.7.17
cmake . -DCMAKE_INSTALL_PREFIX=/apps/svr/mysql \
-DMYSQL_DATADIR=/apps/mysqldb/data \
-DSYSCONFDIR=/apps/conf/my.cnf \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
?
?
boost_1_59_0 解壓放到mysql上層目錄
?
---------------------------------------------------------------------------------------------------------------------------------
-DCMAKE_INSTALL_PREFIX= 安裝根目錄
-DCMAKE_INSTALL_PREFIX=? unix套接字目錄
-DDEFAULT_CHARSET= 默認字符集
-DDEFAULT_COLLATION=默認編碼
-DWITH_EXTRA_CHARSETS= 額外的編碼,請使用ALL來編譯。
-DWITH_MYISAM_STORAGE_ENGINE=1? 編譯myisam存儲引擎,默認的存儲引擎,不加也可以
-DWITH_INNOBASE_STORAGE_ENGINE=1 支持InnoDB存儲引擎,這個也是默認安裝的
-DWITH_READLINE=1 使用readline功能
-DENABLED_LOCAL_INFILE=1 可以使用load data infile命令從本地導入文件
-DMYSQL_DATADIR=數(shù)據(jù)庫 數(shù)據(jù)目錄
---------------------------------------------------------------------------------------------------------------------------------
?
grep processor /proc/cpuinfo 個數(shù)x2
?
make或者:make -j $(grep processor /proc/cpuinfo |wc -l)
make install
?
?
cat >export PATH=$PATH:/apps/svr/mysql/bin >>/etc/profile
Source /etc/profile
或者:ln -s /apps/svr/mysql/bin /usr/local/bin
?
chown? -R mysql:mysql /apps/svr/mysql
chown -R mysql:mysql /apps/conf
chown -R mysql:mysql /apps/mysqldb
?
rm -rf /etc/my.cnf
?
導出配置文件?
cd mysql-5.7.16
cp support-files/my-default.cnf /apps/conf/my.cnf
cp support-files/my-default.cnf /etc/
?
?
初始化數(shù)據(jù)庫
注:
1 之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目錄下,且已被廢棄
2? "--initialize"會生成一個隨機密碼(~/.mysql_secret),而"--initialize-insecure"不會生成密碼
3? --datadir目標目錄下不能有數(shù)據(jù)文件
初始化(測試OK):/apps/svr/mysql/scripts/mysql_install_db? --user=mysql --basedir=/apps/svr/mysql/ --datadir=/apps/mysqldb/data/
查看初始化數(shù)據(jù)文件:ls? /apps/mysqldb/data??? 文件列表如下
auto.cnf? ib_logfile0? localhost.uplook.com.err? mysql?????????????? test
ibdata1?? ib_logfile1? localhost.uplook.com.pid? performance_schema
原文(有問題):/apps/svr/mysql/bin/mysqld --initialize --user=mysql --basedir=/apps/svr/mysql/ --datadir=/apps/mysqldb/data/
?
初始化密碼
?#root@localhost: Ml-&jsWy(7j)
?
?
配置mysql自動啟動
cp /apps/svr/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl enable mysqld.service
或者
cp /apps/svr/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
?
?
?
* Mysqld.pid文件讓mysql用戶有權限訪問。
Vi /usr/lib/systemd/system/mysqld.service
改:PIDFile=/apps/svr/mysql/mysqld.pid
# Start main service
ExecStart=/apps/svr/mysql/bin/mysqld--daemonize--pid-file=/apps/conf/mysql5.7/mysqld.pid $MYSQLD_OPTS
?
dbrootpwd=oneinstack #數(shù)據(jù)庫root密碼
/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"$dbrootpwd\" with grant option;"
/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"$dbrootpwd\" with grant option;"
?
更改mysql登錄root用戶密碼
mysqladmin -u root -p'Ml-&jsWy(7j)' password '2Zs63oQbPxpKYFjn6tyj'
?
?
創(chuàng)建用戶允許143遠程(允許php鏈接)
grant all on *.* to root@192.168.57.143 identified by '123456';
flush privileges;
?
show grants for root@192.168.57.143;
select user,host from mysql.user;
?
安裝數(shù)據(jù)加密等擴展工具(如libmcrypt、mhash、mcrypt)
????? 注意:這三個包mcrypt要最后安裝
yum install libxml2 libxml2-devel bzip2-devel libcurl-devel -y
yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel libevent libevent-devel
?
./configure --prefix=/apps/svr/php/? \
--with-openssl \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-mysql \
--with-zlib \
--enable-xml \
--enable-sockets \
--with-apxs2=/apps/svr/httpd/bin/apxs \
--with-config-file-path=/apps/conf \
--with-bz2? \
--enable-maintainer-zts
?
make
make install
?
?
#--with-config-file-scan-dir=/apps/conf? \
#--with-libxml-dir=/usr \
#--with-mysqli=/usr/local/mysql/bin/mysql_config \
#--with-mysql添加mysql模塊
#? --with-apxs2=/usr/local/apache24/bin/apxs 表示編譯成模塊
#--enable-fpm 編譯成fastCGI
#? --enable-maintainer-zts? 編譯fastCGI不需要選項
?
配置php.ini文件:解壓的安裝包下
cp php.ini-development /apps/conf/php.ini
? 設置配置文件路徑 --with-config-file-path=/apps/conf \
short_open_tag = On
asp_tags = On
?
*解析
short_open_tag
決定是否允許使用 PHP 代碼開始標志的縮寫形式(<? ?> )。如果要和 XML 結合使用 PHP,可以禁用此選項以便于嵌入使用 <?xml ?> 。否則還可以通過 PHP 來輸出,例如:<?php echo '<?xml version="1.0"'; ?> 。如果禁用了,必須使用 PHP 代碼開始標志的完整形式(<?php ?> )。
注意: 本指令也會影響到縮寫形式 <?= ,它和 <? echo 等價。使用此縮寫需要 short_open_tag 的值為 On。
asp_tags
除了通常的 <?php ?> 標志之外還允許使用 ASP 風格的標志 <% %>。這也包括了輸出變量值的縮寫 <%= $value %>。
注意: ASP 風格標志的支持是 3.0.4 版新加的
?
?
整合apache和php
?
編譯Apache配置文件httpd.conf,以Apache支持php。以及訪問的主頁面index.php
vim /apps/conf/httpd.conf
?
添加支持php的主頁
<IfModule dir_module>
??? DirectoryIndex index.php index.html
</IfModule>
?
加載php程序模塊文件
LoadModule php5_module??????? modules/libphp5.so
添加如下二行apache能識別php格式頁面
??? AddType application/x-httpd-php .php
??? AddType application/x-httpd-php-source .phps
?
?
查看配置文件是否有語法錯誤
httpd -t
Syntax OK
?
重啟服務
service httpd restart
?
測試PHP與Apache是否正常連接
cd /apps/svr/httpd/htdocs/
vim index.php
<?php
phpinfo();
?>
?
?
整合php和mysql
?
由于mysql和php不在同一臺服務器,所以添加php的擴展模塊
1、在Apache+php服務器上安裝mysql-devel
yum install mysql-devel -y
?
2、進入php解壓包生成配置文件
cd /root/php-5.6.30/ext/mysql
執(zhí)行phpize腳本生成configure文件
[root@client mysql]# pwd
/root/php-5.6.30/ext/mysql
[root@client mysql]# /apps/svr/php/bin/phpize
Configuring for:
PHP Api Version:??????? 20131106
Zend Module Api No:????? 20131226
Zend Extension Api No:? 220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
無法找到autoconf。請檢查您的autoconf安裝和
$PHP_AUTOCONF環(huán)境變量。然后,重新運行這個腳本。
(*錯誤缺少 m4? autoconf包* )
yum install m4
yum install autoconf
?
3、配置 編譯安裝(安裝完成之后再擴展塊路徑下生成一個mysql.so模塊文件)
./configure --with-mysql --with-php-config=/apps/svr/php/bin/php-config
?
--with-mysql添加mysql模塊
--with-php-config=/apps/svr/php/bin/php-config添加模塊所需要的腳本位置
?
make
make install
spacer.gif
?
?
4、添加mysql.so模塊到php.ini配置文件(/apps/conf/php.ini)
[root@client htdocs]# cat /apps/conf/php.ini |grep mysql.so
extension=/apps/svr/php/lib/php/extensions/no-debug-zts-20131226/mysql.so wKiom1kejiDi0kTlAAAzoQvJWYU480.png
?
測試PHP與MySQL(默認root用戶登錄不需要密碼)是否正常連接
vim index.php
<?php
$conn=mysql_connect('localhost','root','');
if ($conn)
echo "Success...";
else
echo "Failure!!!";
?>
下面關于LAMP相關的內(nèi)容你可能也喜歡:
LAMP平臺安裝Xcache和Memcached加速網(wǎng)站運行? http://www.linuxidc.com/Linux/2015-06/118835.htm
CentOS 7下搭建LAMP平臺環(huán)境? http://www.linuxidc.com/Linux/2015-06/118818.htm
CentOS 6.5系統(tǒng)安裝配置LAMP(Apache+PHP5+MySQL)服務器環(huán)境 http://www.linuxidc.com/Linux/2014-12/111030.htm
CentOS 7.2 yum安裝LAMP環(huán)境? http://www.linuxidc.com/Linux/2016-11/136766.htm
Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)開發(fā)環(huán)境? http://www.linuxidc.com/Linux/2014-10/107924.htm
LAMP結合NFS構建小型博客站點? http://www.linuxidc.com/Linux/2015-08/121029.htm
CentOS7下安裝部署LAMP環(huán)境? http://www.linuxidc.com/Linux/2016-04/130653.htm
CentOS 7 上安裝(LAMP)服務 Linux,Apache,MySQL,PHP? http://www.linuxidc.com/Linux/2017-05/143868.htm
Ubuntu Server 14.04 LTS下搭建LAMP環(huán)境圖文詳解? http://www.linuxidc.com/Linux/2016-12/138758.htm
Ubuntu Server 16.04下配置LAMP環(huán)境 http://www.linuxidc.com/Linux/2016-12/138757.htm
CentOS 6.7編譯安裝LAMP 詳解 http://www.linuxidc.com/Linux/2017-03/141244.htm
Ubuntu 16.04搭建LAMP開發(fā)環(huán)境 http://www.linuxidc.com/Linux/2016-10/136327.htm
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-05/144037.htm
? ? ? 本文轉自rshare 51CTO博客,原文鏈接:http://blog.51cto.com/1364952/1979068,如需轉載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的CentOS 7下搭建LAMP并把MySQL单独分离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux+nginx+mysql+ph
- 下一篇: 如何在WebPart中访问页面上的其他W