设为首页 收藏本站
查看: 912|回复: 0

Linux LAMP 企业架构

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-5 08:48:39 | 显示全部楼层 |阅读模式
Linux+Apache+Php+Mysql

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


1.1.安装apache
l  安装方式2:源码安装LAMP之Apache
yum 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  -y
wget  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  .php
DirectoryIndex   index.phpindex.html (把index.php加入index.html之前)
然后在/usr/local/apache/htdocs目录下创建index.php测试页面,执行如下命令:

Vi /usr/local/apache/htdocs/index.php

<?php

phpinfo();

?>

重新启动apache服务,通过IP访问界面如下图,即代表LAMP环境搭建成功。


报错:sendos 5.5 安装 PHP 5.4.3报 configureerror xml2-config not found. please check your libxml2 installation 错误


检查是否安装了libxm包

[iyunv@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安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。

[iyunv@rh-linux /]# yum install libxml2

[iyunv@rh-linux /]# yum install libxml2-devel -y


安装完之后查找xml2-config文件是否存在

[iyunv@rh-linux /] # find / -name"xml2-config"
/usr/bin/xml2-config


如果存在的话重新安装php

[iyunv@rh-linux  php-5.4.3]# ./configure

[iyunv@rh-linux  php-5.4.3]# make

[iyunv@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/eacc ... egacy.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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-309755-1-1.html 上篇帖子: centos6.5下源码搭建lamp环境 下篇帖子: CentOS7-LAMP架构搭建 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表