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

[经验分享] Liunx CentOS6编译安装LAMP

[复制链接]

尚未签到

发表于 2018-4-21 13:59:44 | 显示全部楼层 |阅读模式
  一、背景
  项目需统一安装服务器环境,阿里云的centos6安装,需要部署的环境是Apache2.4.20 + Mysql5.6.30 + PHP5.5.30
  文件目录统一路径:/www/
  如php放在/www/php,防火墙放在/www/scripts/,mysql放在/www/data
  二、参考博客
  http://cubix.blog.51cto.com/7251166/1901501
  三、配置
  1、关闭SELINUX,配置yum源。
  setenforce 0
  sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
  ##此处使用的是阿里镜像源作为yum源。
  mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  ##下载CentOS6源
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  ##根据系统下载好对应版本的源后,需要yum makecache
  yum makecache
  2、安装Mysql5.6
  2.1、检查&安装cmake
  rpm -qa cmake
DSC0000.png

  如未安装,用yum方式安装cmake
  yum install cmake -y
  安装其他依赖包
  yum install gcc gcc-c++ cmake ncurses-devel bison perl  -y
  2.2、环境配置
  mkdir -p  /www/data
  useradd mysql
  chown -R mysql:mysql /www/data/
  2.3、安装包准备
  cd /usr/local/src/
  wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.30.tar.gz
  tar -xzf mysql-5.6.30.tar.gz
  cd mysql-5.6.30
  2.4、编译安装
  cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.30 \
  -DMYSQL_DATADIR=/www/data \
  -DSYSCONFDIR=/etc/my.cnf \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_MEMORY_STORAGE_ENGINE=1 \
  -DWITH_PARTITION_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DMYSQL_UNIX_ADDR=/www/data/mysqld.sock \
  -DENABLED_LOCAL_INFILE=1 \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DMYSQL_TCP_PORT=3306
  make && make install
  2.5、修改Mysql配置文件
  cat  > /etc/my.cnf <<EOF
[mysqld]

  datadir=/www/data
  socket=/www/data/mysqld.sock
  user=mysql
  # Disabling symbolic-links is recommended to prevent assorted security risks
  symbolic-links=0
[mysqld_safe]

  log-error=/www/data/mysqld.log
  pid-file=/www/data/mysqld.pid
  EOF
  2.6、添加Mysql服务,配置开机自动启动
  cp /usr/local/mysql-5.6.30/support-files/mysql.server  /etc/init.d/mysqld
  chkconfig --add mysqld
  chkconfig mysqld --level 345 on
  2.7、初始化数据库,设置Mysql超级用户密码
  ln -s /usr/local/mysql-5.6.30 /usr/local/mysql
  ln -s /usr/local/mysql/bin/* /usr/bin/
  ln -s /usr/local/mysql/include/* /usr/local/include/
  /usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql  --datadir=/www/data/  --user=mysql
  /etc/init.d/mysqld start
  /usr/local/mysql/bin/mysql_secure_installation
  ctrl+c退出,此时你的Mysql的密码是空的,后面做修改和权限
  2.8、登陆测试
DSC0001.png

  3、下载Apache、PHP源码包
  wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz -O /usr/local/src/apr-1.5.2.tar.gz
  wget http://apache.fayea.com//apr/apr-util-1.5.4.tar.gz -O /usr/local/src/apr-util-1.5.4.tar.gz
  wget --no-check-certificate https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz -O /usr/local/src/pcre-8.40.tar.gz
  ##下载Apache-2.4.20
  wget http://archive.apache.org/dist/httpd/httpd-2.4.20.tar.gz -O /usr/local/src/httpd-2.4.20.tar.gz
  ##下载PHP-5.5.30
  wget http://cn2.php.net/distributions/php-5.5.30.tar.gz -O  /usr/local/src/php-5.5.30.tar.gz
  wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz   -O /usr/local/src/libmcrypt-2.5.7.tar.gz
  4、安装Apache、PHP
  4.1 安装依赖包
  yum install -y gcc gcc-c++ cmake ncurses-devel bison openssl openssl-devel libxml2 libxml2-devel libmcrypt libmcrypt-devel zlib zlib-devel libpng libpng-devel libtool jpeg6 libjpeg libjpeg-devel freetype freetype-devel autoconf automake gd libXpm-devel curl curl-devel
  4.2 编译安装apr、apr-util、pcre。
  cd /usr/local/src/
  tar xf apr-1.5.2.tar.gz
  tar xf apr-util-1.5.4.tar.gz
  tar xf pcre-8.40.tar.gz
  tar xf httpd-2.4.20.tar.gz
  tar xf php-5.5.30.tar.gz
  tar xf libmcrypt-2.5.7.tar.gz
  cd /usr/local/src/apr-1.5.2
  ./configure --prefix=/usr/local/apr
  make && make install
  cd /usr/local/src/apr-util-1.5.4
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
  make && make install
  cd /usr/local/src/pcre-8.40
  ./configure --prefix=/usr/local/pcre
  make && make install
  4.3 编译安装Apache-2.4.20
  cd /usr/local/src/httpd-2.4.20
  ./configure --prefix=/usr/local/apache-2.4.20 --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --enable-so --enable-modules=most --enable-mods-shared=most --enable-rewrite --enable-ssl  --enable-mpms-shared=all
  make && make install
  ln -s /usr/local/apache-2.4.20 /usr/local/apache
  ##配置apache开机自动启动
  echo '/usr/local/apache/bin/apachectl start ' >> /etc/rc.local
  4.4 编译安装PHP
  cd /usr/local/src/libmcrypt-2.5.7
  ./configure  --prefix=/usr/local/libmcrypt
  make && make install
  cd /usr/local/src/php-5.5.30
  ./configure \
  --prefix=/usr/local/php5.5.30 \
  --with-config-file-path=/usr/local/php/etc \
  --with-apxs2=/usr/local/apache/bin/apxs \
  --with-mysql=/usr/local/mysql/ \
  --with-libxml-dir \
  --with-png-dir \
  --with-jpeg-dir \
  --with-freetype-dir \
  --with-gd \
  --with-zlib-dir \
  --with-mysqli \
  --with-xpm-dir=/usr/lib64/ \
  --with-curl \
  --enable-soap \
  --enable-mbstring=all \
  --enable-sockets \
  --enable-maintainer-zts \
  --with-mcrypt=/usr/local/libmcrypt/
  make && make install
  ln -s /usr/local/php5.5.30 /usr/local/php
  cp /usr/local/src/php-5.5.30/php.ini-production  /usr/local/php/etc/php.ini
  5、配置apache站点及防火墙
  5.1、配置Apache
  cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.back
  mkdir -p /usr/local/apache/conf/conf.d/
  cat >>/usr/local/apache/conf/httpd.conf <<EOF
  #######
  ServerName localhost:80
  AddType application/x-httpd-php .php
  TraceEnable off
  ServerTokens Prod
  ServerSignature Off
  EOF
  ##配置站点www.a.com,仅需将"web=www.a.com"修改成对应站点名称,运行以下脚本即可创建虚拟主机以及相应的目录。如没有域名的可以随便用个如www.a.com,后面有域名再去修改/usr/local/apache/conf/conf.d/www.a.com.conf文件
  web=www.a.com
  mkdir -p /www/$web
  cat >>/usr/local/apache/conf/httpd.conf <<EOF
  ########
  Include conf/conf.d/$web.conf
  ########
  EOF
  cat > /usr/local/apache/conf/conf.d/$web.conf <<EOF
  <VirtualHost *:80>
  DocumentRoot "/www/$web/"
  ServerName   $web
  ErrorLog "|/usr/local/apache/bin/rotatelogs   /usr/local/apache/logs/$web-%Y%m%d_error.log 86400 480"
  CustomLog "|/usr/local/apache/bin/rotatelogs  /usr/local/apache/logs/$web-%Y%m%d_access.log 86400 480" common
  </VirtualHost>
  <Directory "/www/$web/">
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
  DirectoryIndex index.php index.Html index.html
  </Directory>
  EOF
  5.2、配置防火墙
  mkdir -p /www/scripts/
  cat > /www/scripts/iptables.sh <<EOF
  iptables -P INPUT ACCEPT
  iptables -F
  #enable the port input
  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  #如果你要开启mysql让外部可以访问的话就这样配置,如果只是内网访问的话就不要下面这句,开启内网那句
  iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
  # enable ping
  iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
  iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  #enable the interface input,看你的eth0口是否外网口,如果是则不加下面这句,阿里云的一般都是
DSC0002.png

  #iptables -A INPUT -i eth0 -j ACCEPT
  iptables -A INPUT -i lo -j ACCEPT
  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
  iptables -A INPUT -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
  iptables -P INPUT DROP
  iptables -P OUTPUT ACCEPT
  iptables -P FORWARD DROP
  EOF
  chmod +x /www/scripts/iptables.sh
  /www/scripts/iptables.sh
  ## 将防火墙规则加到开机自动启动
  echo '/www/scripts/iptables.sh' >>/etc/rc.local
  6、编译安装php扩展模块(编译PDO)
  wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz -O /usr/local/src/PDO_MYSQL-1.0.2.tgz
  cd /usr/local/src/
  tar xf PDO_MYSQL-1.0.2.tgz
  cd PDO_MYSQL-1.0.2
  /usr/local/php/bin/phpize
  ./configure -with-php-config=/usr/local/php/bin/php-config -with-pdo-mysql=/usr/local/mysql
  make && make install
  echo 'extension=pdo_mysql.so' >> /usr/local/php/etc/php.ini
  /usr/local/apache/bin/apachectl restart
  7、修改相关配置文件
  7.1、配置php.ini
  vi /usr/local/php5.5.30/etc/php.ini
  找到date.timezone
  修改
  date.timezone = Asia/shanghai
  7.2、开启rewrite 模块
  vi /usr/local/apache/conf/httpd.conf
  找到rewrite ,#去掉
  /usr/local/apache/bin/apachectl restart(重启apache)
  四、配置完成,访问测试
  放两个php文件上去访问测试
DSC0003.png

  数据库链接正常
$link=mysql_connect("127.0.0.1","root","123456");if(!$link) echo "FAILD";   else echo "OK!";
  echo "<hr/>";
  
$link = new mysqli('localhost', 'root', '123456', 'mysql');if(!$link) echo "FAILD";   else echo "OK!";
  echo "<hr/>";
  
$db = new PDO('mysql:host=localhost;dbname=mysql', 'root', '123456');if(!$db) echo "FAILD"; else echo "OK!";
DSC0004.png

  phpinfo查看
DSC0005.png

运维网声明 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-450109-1-1.html 上篇帖子: Centos 6.8安装erlang&rabbitmq的方法 下篇帖子: CentOS5/6启动过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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