您的位置:首页 > 运维架构 > Linux

Linux LAMP构架搭建

2016-12-02 19:45 246 查看

Linux LAMP 企业架构

Linux+Apache+Php+Mysql

yum install httpd httpd-devel mysql mysql-server mysql-devel php php-devel -y

1.1.安装apache

l 安装方式2:源码安装LAMP之Apacheyum install apr-devel apr-util-devel gcc*–y; 安装依赖包cd /tmp/ ; wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.bz2 ; tar xvf httpd-2.2.31.tar.bz2 ; cd httpd-2.2.31 ; ./configure--prefix=/usr/local/apache --enable-so --enable-rewrite  &&make&&make install

1.2.安装mysql

安装方式1:yuminstall –y mysql-server mysql-devel mysql

安装方式2:源码安装LAMP之MySQL
cd /tmp/ ;wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.63.tar.gz ; tar xzf mysql-5.1.63.tar.gz ; cdmysql-5.1.63 ; ./configure --prefix=/usr/local/mysql --enable-assembler &&make&&make install后面配置步骤与mysql第7章相同……………..

yum install ncurses-devel -ywget http://ftp.gnu.org/gnu/ncurses/ncurses-4.2.tar.gz 进入mysql数据库创建及授权命令如下:create database discuz charset=utf8;grant all on discuz.* to root@'localhost' identified by"123456";

1.3.安装php

安装方式1:yum php php-devel libxml2 libxml2-devel -y

安装方式2:源码安装LAMP之PHP
yuminstall libxml2 libxml2-devel –y 安装依赖wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2 ;tar jxf php-5.3.28.tar.bz2 ./configure --prefix=/usr/local/php5--with-config-file-path=/usr/local/php5/etc--with-apxs2=/usr/local/apache/bin/apxs--with-mysql=/usr/local/mysql/ &&make &&make install

1.4.源码安装Apache+PHP整合

整合apache+php环境,修改httpd.conf配置文件,然后加入如下语句:LoadModule php5_modulemodules/libphp5.so (默认已存在)AddType application/x-httpd-php .phpDirectoryIndex index.phpindex.html (把index.php加入index.html之前)然后在/usr/local/apache/htdocs目录下创建index.php测试页面,执行如下命令:Vi /usr/local/apache/htdocs/index.php <?phpphpinfo();?>重新启动apache服务,通过IP访问界面如下图,即代表LAMP环境搭建成功。
报错:sendos 5.5 安装 PHP 5.4.3报 configureerror xml2-config not found. please check your libxml2 installation 错误 检查是否安装了libxm包[root@rh-linux software]# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12 重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。[root@rh-linux /]# yum install libxml2[root@rh-linux /]# yum install libxml2-devel -y 安装完之后查找xml2-config文件是否存在[root@rh-linux /] # find / -name"xml2-config"
/usr/bin/xml2-config 如果存在的话重新安装php[root@rh-linux php-5.4.3]# ./configure[root@rh-linux php-5.4.3]# make[root@rh-linux php-5.4.3]# make install安装好php后别忘了配置下php.ini 文件, 具体参数含义可以用./configure --help来查看。列表如下(部分参数未得到解释):--prefix=/usr/local/php # 指定 php 安装目录--with-config-file-path=/usr/local/php/etc # 指定php.ini位置--with-mysql=/usr/local/mysql # mysql安装目录,对mysql的支持mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。--with-mysqli=/usr/local/mysql/bin/mysql_config 整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块--with-apxs2=/usr/local/apache/bin/apxs # 选项指令 --with-iconv-dir 用于 PHP 编译时指定 iconv 在系统里的路径,否则会扫描默认路径。--with-iconv-dir=/usr/local --with-freetype-dir 打开对freetype字体库的支持 --with-jpeg-dir 打开对jpeg图片的支持 --with-png-dir 打开对png图片的支持 --with-zlib-dir 打开zlib库的支持,用于http压缩传输--with-libxml-dir 打开libxml2库的支持--disable-rpath 关闭额外的运行库文件 --enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块--enable-shmop --enable-sysvsem 这样就使得你的PHP系统可以处理相关的IPC函数了。--enable-inline-optimization 优化线程--with-curl 打开curl浏览工具的支持 --with-curlwrappers 运用curl工具打开url流 --enable-mbregex--enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序--enable-mbstring 多字节,字符串的支持 --with-mcrypt mcrypt算法扩展--with-mhash mhash算法扩展--with-gd 打开gd库的支持 --enable-gd-native-ttf 支持TrueType字符串函数库--with-openssl openssl的支持,加密传输https时用到的--enable-pcntl freeTDS需要用到的,可能是链接mssql 才用到--enable-sockets 打开 sockets 支持--with-xmlrpc 打开xml-rpc的c语言 --enable-zip 打开对zip的支持 --enable-ftp 打开ftp的支持 --with-bz2 打开对bz2文件的支持 --without-iconv 关闭iconv函数,字符集间的转换 --with-ttf 打开freetype1.*的支持,可以不加了 --with-xsl 打开XSLT 文件支持,扩展了libXML2库,需要libxslt软件 --with-gettext 打开gnu 的gettext 支持,编码库用到 --with-pear 打开pear命令的支持,PHP扩展用的 --enable-calendar 打开日历扩展功能--enable-exif 图片的元数据支持 --enable-magic-quotes 魔术引用的支持 --disable-debug 关闭调试模式 --with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置CGI方式安装才用的参数 --enable-fastCGI 支持fastcgi方式启动PHP--enable-force-CGI-redirect 重定向方式启动PHP--with-ncurses 支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库--with-gmp 应该是支持一种规范--enable-dbase 建立DBA 作为共享模块--with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置--disable-dmalloc--with-gdbm dba的gdbm支持--enable-sigchild--enable-sysvshm--enable-zend-multibyte 支持zend的多字节--enable-wddx--enable-soap

1.5.源码安装DISCUZ论坛

下载discuz源码包文件,然后解压:wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip解压discuz程序包:unzipDiscuz_X3.1_SC_UTF8.zip -d /usr/local/apache/htdocs/ 重命名程序文件:cd /usr/local/apache/htdocs/ ;mvupload/* .赋予discuz目录完全访问权限: Chmod777 -R data/ uc_server/ config/ uc_client/

1.6.LAMP多主机部署

1.6.1. 安装apache php5 到A台主机

# httpd安装
yum installhttpd httpd-devel php-devel php php-mysql
# php安装
./configure --prefix=/usr/local/php5--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
--with-apxs2=/usr/local/apache/bin/apxs;make -j8;make -j8 install

1.6.2. 安装mysql到第B主机

cd /tmp/ ;wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.63.tar.gz ; tar xzf mysql-5.1.63.tar.gz ; cdmysql-5.1.63 ; ./configure --prefix=/usr/local/mysql --enable-assembler &&make&&make install 后面配置与单台配置相同,此处省略…………..

1.7.PHP优化参数

1) 优化PHP服务器eAccelerator、APC、Xcache、ZEND属于一个免费的开源php加速、优化、编译和动态缓存项目,原理和apc类似,都是通过缓存php编译后的opcode代码来提高php脚本的执行性能。
目前最新的版本下载地址:
https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master
tar -xzf master ;cd
eaccelerator-eaccelerator-42067ac/;phpize;
./configure --enable-eaccelerator=shared--with-php-config=/usr/bin/php-config
make && makeinstall
然后在/etc/php.ini末尾加入如下代码:
extension="/usr/lib64/php/modules/eaccelerator.so" eaccelerator.shm_size="64"# 指定 eAccelerator 能够使用的共享内存数量,单位:MB。# "0" 代表操作系统默认,默认值为 "0",一般设置为64或128 eaccelerator.cache_dir="/data/eaccelerator"# 用户磁盘缓存的目录。eAccelerator 在该目录中存储预编译代码、session 数据、内容等。相同# 的数据也可以存储于共享内存中(以获得更快的存取速度)。默认值为 "/tmp/eaccelerator"。 eaccelerator.enable="1"# 开启或关闭 eAccelerator。"1" 为开启,"0" 为关闭。默认值为 "1"。 eaccelerator.optimizer="1"# 开启或关闭内部优化器,可以提升代码执行速度。"1" 为开启,"0" 为关闭。默认值为 "1"。 eaccelerator.check_mtime="1"# 开启或关闭 PHP 文件改动检查。"1" 为开启,"0" 为关闭。如果您想要在修改后重新编译 # PHP程序则需要设置为 "1"。默认值为 "1"。 eaccelerator.debug="0"# 开启或关闭调试日志记录。"1" 为开启,"0" 为关闭。默认值为 "0"。 eaccelerator.filter=""# 判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 "*.php *.phtml"等),如果参数以 "!" 开头,则匹配这些参数的文件被忽略缓存。默认值为 "",即,所有 PHP 文件都将被缓存。 eaccelerator.shm_max="0"# 当使用 " eaccelerator_put() " 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。"0" 为不限制。默认值为 "0"。 eaccelerator.shm_ttl="0"# 当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 "shm_ttl" 秒内无法存取的脚本缓存。默认值为 "0",即:不从共享内春中删除任何缓存文件。 eaccelerator.shm_only="0"# 允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 "0",即:使用磁盘和共享内存进行缓存。 eaccelerator.compress="1"# 允许或禁止压缩内容缓存。默认值为 "1",即:允许压缩。 eaccelerator.compress_level="9"# 指定内容缓存的压缩等级。默认值为 "9",为最高等级。

1.8.LAMP故障排错

1.8.1.PHP空白

short_open_tag = On
除此之外,还有可能是php版本兼容性导致的问题哦。

1.8.2.mysql-binlog数据恢复:

查看binlog日志的命令:mysqlbinlog mysql-bin.000001|more
备份:cp mysql-bin.000001 /data/back/20150411/
恢复1:mysqlbinlog --start-position=215 --stop-position=336 mysql-bin.000001|mysql -uroot -p
336--776 插入了4条记录。
恢复2:mysqlbinlog--start-position=336 --stop-position=776 mysql-bin.000001 |mysql -uroot -p
mysqldump -uroot-p123456 jfedu > /data/backup/jfedu.sql

1.8.3.Mysql慢查询

查看慢查询日志是否开启:
show variables like"%slow%";
查询一条语句花费的时间超过规定的时间,然后将该条语句记录到慢查询日志里面。
select * from t1 limit1; 超过10s
如何去优化,这条语句的功能是获取用户名,优化后的语句:
select name from t1limit 1;
如何去开启慢查询功能:
在mysql里面执行:setglobal slow_query_log=on;
在/etc/my.cnf配置如下:
log-slow-queries =/var/run/mysqld/slow.log
long_query_time = 5
log-queries-not-using-indexes
然后重启mysql服务即可。

查找libmysqlclient,发现是在/usr/lib64/mysql/目录内的libmysqlclient.so.15.0.0做的软连接,PHP默认是去的/usr/lib/搜索,所以没有找到.
解决办法就是:
cp /usr/lib64/mysql/* /usr/lib/mysql/
然后进行./configure即可,如果服务器没有/usr/lib/mysql/ 目录,则在/usr/lib/目录下创建mysql目录即可

1.8.3.1. 环境说明

如果你需要搭建Linux整个实施环境(nginx、php、mysql、tomcat、jdk、服务器多域名配置)
请参考我的Linux项目实施系列教程:
CenterOS 6.3 64位搭建nginx1.3+php5.4.3+mysql5.5.25+tomcat7+jdk7安装

1.8.4.主服务器故障,切换至从服务在

Vim /var/www/html/config/config_global.php
// ---------------------------- CONFIG DB ----------------------------- //
$_config['db']['1']['dbhost'] ='192.168.1.132';
$_config['db']['1']['dbuser'] = 'root';
$_config['db']['1']['dbpw'] = '123456';
$_config['db']['1']['dbcharset'] = 'utf8';
$_config['db']['1']['pconnect'] = '0';
$_config['db']['1']['dbname'] = 'bbs';
$_config['db']['1']['tablepre'] = 'pre_';
$_config['db']['slave'] = '';
$_config['db']['common']['slave_except_table']= '';

在从服务器上,添加授权
.grant all on *.* to ‘root’@’%’ identifiedby ‘123456’;

mysqli_connect()
不支持
advice_mysqli_connect
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 LAMP