LAMP、LNMP,YUM安装详解流程细述及Mysql主从架构的复制原理及配置详解...

LAMP安装

1、安装之前先检查一下系统是否有默认安装的apache或者php
# rpm -qa | grep httpd
# rpm -qa | grep php

2、把上面指令列出来的包都删除
# rpm -e 包名 --nodeps

3、在安装前 ,更新一下系统(此处可省略)
yum update

4、安装必备的包

 

# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel


5、安装apache(目录:/etc/httpd/)
# yum install httpd

6、查看防火墙状态
# service iptables status
在关闭防火墙
service iptable stop
将80、3306端口加入
# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
#/etc/rc.d/init.d/iptables save
重启防火墙
service iptables start

7、配置yum源(此处可省略)
追加CentOS 6.5的epel及remi源。

# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
以下是CentOS 7.0的源。
# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
使用yum list命令查看可安装的包(Packege)。
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

8、安装PHP5.6(配置目录:/etc/php.ini)
# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
查看php版本
# php --version

9、修改httpd.conf支持PHP,添加:
找到:
    
AddType  application/x-compress .Z    
AddType application/x-gzip .gz .tgz    
在后面添加:    
AddType application/x-httpd-php .php(使Apcche支持PHP)    
AddType application/x-httpd-php-source .php5       
找到:    <IfModule dir_module>    DirectoryIndex index.html    </IfModule>    
添加:    <IfModule dir_module>    DirectoryIndex index.html index.php    </IfModule>        
找到:    #ServerName www.example.com:80    
修改为:  ServerName 127.0.0.1:80或者ServerName localhost:80   记得要去掉前面的“#”
修改默认的Web站点目录
找到:
DocumentRoot "/usr/local/apache2/htdocs"
修改为:DocumentRoot "/home/www/WebSite" --该目录为自己创建的目录
找到:
<Directory "/usr/local/apache2/htdocs">
修改为:<Directory "/home/www/WebSite">

10、安装MySql(配置文件目录:/etc/my.cnf;数据库目录:/var/lib/mysql/)
查看自带的mysql

#rpm -qa | grep mysql
卸载mysql-lib
# rpm -e mysql-libs.i686 --nodeps
下载rpm
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
接着执行这句,解释一下,这个rpm还不是mysql的安装文件,只是两个yum源文件,执行后,在/etc/yum.repos.d/ 这个目录下多出mysql-community-source.repo和mysql-community.repo
# rpm -ivh mysql-community-release-el6-5.noarch.rpm
这个时候,可以用yum repolist mysql这个命令查看一下是否已经有mysql可安装文件
# yum repolist all | grep mysql
安装mysql 服务器命令(一路yes)
# yum install mysql-community-server
安装成功后
# service mysqld start

 

 

启动会出现问题,MySQL Daemon failed to start.解决办法:

错误提示中所说: ibdata1  的值640个pages 配置文件中的值768个pages 不同。所以修改my.cnf 中innodb_data_file_path 中ibdata1 的值即可.
首先计算ibdata1的初始值:640/64 = 10M
最后的配置是:innodb_data_file_path = ibdata1:10M:autoextend;
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
innodb_data_file_path = ibdata1:10M:autoextend
[mysqld_safe]】

由于mysql刚刚安装完的时候,mysql的root用户的密码默认是空的,所以我们需要及时用mysql的root用户登录(第一次回车键,不用输入密码),并修改密码
# mysql -u root
# use mysql;
# update user set password=PASSWORD("这里输入root用户密码") where User='root';
授权(自动创建)一个mysql的非root的aaa用户,能访问localhost上的testdb数据库,密码是xxxx,最后刷新权限
# grant all privileges on testdb.* to aaa@localhost identified by 'xxxx';
# flush privileges;
创建一个utf8的表(如果你有需要的话)之后退出
# CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# exit;
mysql安全设置(系统会一路问你几个问题,看不懂复制之后翻译,基本上一路yes):
# mysql_secure_installation (此处可省略)

查看mysql是否自启动,并且设置开启自启动命令
# chkconfig --list | grep mysqld
# chkconfig mysqld on

11、安装phpMyAdmin(配置文件目录:/etc/phpMyAdmin/config.inc.php;库文件目录:/usr/share/phpMyAdmin/)
# yum install --enablerepo=remi --enablerepo=remi-php56 phpmyadmin
# yum -y install php-mcrypt(如果安装php时没有安装php-mcrypt包,可能会出现错误提示,这时只需将其安装)
配置phpMyAdmin

A、
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
B修改/etc/phpMyAdmin/config.inc.php:打开config.inc.php文件,进行以下修改;
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
// $cfg['Servers'][$i]['history'] = 'pma_history';

 

 

去掉每行前面的//

 

认证方法:$cfg['Servers'][$i]['auth_type'] 有三个待选项值,即 cookie、http、config、HTTP。config方式即输入phpmyadmin的访问地址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。当该项设置为cookie、http、HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,具体如下:PHP安装模式为Apache,可以使用http和cookie;PHP安装模式为CGI可以使用cookie。不过个人建议不论本地还是网络上,都设置成cookie,安全第一。

登录方式:四种登录方式。config:直接输入phpmyadmin远程登录地址即可,只要在配置文件中设置用户名和密码即可。用http:浏览器会弹出授权窗口,输入用户名和密码。signon:类似于页面跳转的登录方式,同时需要设定$cfg['Servers'][$i]['SignonURL'],当你输入phpmyadmin的远程登录地址后自动跳转到signonURL设定的网址。 cookie:要求用户必须输入正确的用户名与密码。

$cfg['Servers'][$i]['host'] = 'localhost';一般的话,如果mysql和phpmyadmin放在同一服务器上,主机名就直接用localhost。

$cfg['Servers'][$i]['controluser'] ='pma';把pma修改为你的帐号。
$cfg['Servers'][$i]['controlpass'] ='pmapass'; 把pmapass设置为你的mysql登录密码。
$cfg['blowfish_secret'] =''; 添加短语密码,可是任意字符串例如:$cfg['blowfish_secret'] = 'abcd'修改以后(尽量写长些,否则会提示密码太短)以后登入phpMyAdmin就方便多了,但一定不要使用空密码。
C、修改/etc/httpd/conf.d/phpMyAdmin.conf,本文件是phpMyAdmin的访问控制文件,保证远程访问。如下修改即可:(可将phpMyAdmin目录和apache目录路径设置一致)

<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   #Deny  from All
   Allow from All
</Directory>

D、用命令/etc/init.d/httpd restart重启Apache,测试:访问http://ip地址/phpMyAdmin/

LNMP安装

1、查看环境
# cat /etc/redhat-release
2、关闭防火墙
# service iptables stop 或 # /etc/init.d/iptables stop

将80、3306端口加入
# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# /etc/rc.d/init.d/iptables save
重启防火墙
# service iptables start

3、卸载已安装的apache、mysql、php
# yum remove httpd
# yum remove mysql
# yum remove php
4、配置第三方yum源
# wget http://www.atomicorp.com/installers/atomic
# sh ./atomic
# yum check-update
5、安装开发包和库文件
# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
6、安装nginx(配置文件目录: /etc/nginx/nginx.conf;虚拟主机配置:/etc/nginx/conf.d/default.conf;启动路径:/etc/init.d/nginx;)
# yum install nginx
# service nginx start
# chkconfig --levels 235 nginx on
//设2、3、5级别开机启动【6个运行级别
0 - 停机(千万不要把initdefault设置为0 )
1 - 单用户模式
2 - 多用户,但是没有NFS
3 - 完全多用户模式
4 - 没有用到
5 - X11
6 - 重新启动(千万不要把initdefault设置为6 )
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。
修改级别
vi /etc/inittab
把id:3:initdefault:中的3改为相应的级别】

7、安装MySql
# yum install mysql mysql-server mysql-devel
# service mysqld start
# chkconfig --levels 235 mysqld on
登陆MySQL删除空用户,修改root密码
# mysql -uroot
# update mysql.user set password = PASSWORD('*********') where user='root';
# flush privileges;
8、安装PHP
# yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql
php-snmp php-soap
//安装php和所需组件使PHP支持MySQL、FastCGI模式
# yum install php-tidy php-common php-devel php-mysql php-fpm
# service php-fpm start
# chkconfig --levels 235 php-fpm on
9、配置nginx支持php
//将配置文件改为备份文件
# cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
//修改nginx配置文件,添加fastcgi支持
//加入index.php
# vim /etc/nginx/conf.d/default.conf

location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
}

location ~ \.php$ {
   root   /usr/share/nginx/html;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
   include        fastcgi_params;
}
//将以上代码注释去掉,并修改成nginx默认路径
10、配置PHP
//编辑文件php.ini,在文件末尾添加cgi.fix_pathinfo = 1
# vi /etc/php.ini
11、重启nginx php-fpm
# service nginx restart
# service php-fpm restart
12、测试
ip/index.php

13、安装phpMyAdmin(配置文件目录:/etc/phpMyAdmin/config.inc.php;库文件目录:/usr/share/phpMyAdmin/)
Nginx设置alias别名目录访问phpmyadmin

# vim /etc/nginx/conf.d/default.conf
添加一下内容:
location /phpMyAdmin{
        alias /usr/share/phpMyAdmin;
        index index.php;
}
location ~ /phpMyAdmin/.+\.php$ {
  if ($fastcgi_script_name ~ /phpMyAdmin/(.+\.php.*)$) {
      set $valid_fastcgi_script_name $1;
  }
  include fastcgi_params;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$valid_fastcgi_script_name;
}
重启php-fpm、nginx
# service php-fpm restart
# service nginx restart
问题一:在浏览器地址输入:ip/phpMyAdmin/ 会出现:
phpMyAdmin – ErrorCannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.的提示
我们可以从错误提示看到,php没有正确保存session。导致上面的错误提示个人认为原因在于没有给php正确设置session的临时目录导致。在php.ini文件搜索找
session.save_path
php.ini文件中显示 session.save_path = “N;/path”
需要将它修改为
session.save_path = "/var/lib/php/session"
修改/var/lib/php/session目录的所有权和属主
# chown -R nginx:nginx /var/lib/php/session
修改此目录的属主为nobody
解决登录问题还应该修改/var/lib/php/session目录权限
# chmod 777 /var/lib/php/session
然后重新启动php和nginx到服务即可正常登录phpMyAdmin,
phpmyadmin需要配置权限为755,不然会提示配置错误
好了。

问题二:登录phpMyAdmin后页面会看到“配置文件现在需要一个短语密码

打开phpMyAdmin/libraries/config.default.php

# vim /usr/share/phpMyAdmin/libraries/config.default.php

找到$ cfg['blowfish_secret'] = ''这一栏,并将这一栏修改为$ cfg['blowfish_secret'] = '654321';(单引号中的数字是可以随意输入,尽量长些);

问题三:create_tables.sql导入

到phpMyadmin官网下载phpmyadmin,解压包,找到create_tables.sql,导入本地phpmyadmin;

 

外网如何访问虚拟机服务器

配置可参考链接:http://blog.csdn.net/mecho/article/details/24396065

 

MySql主从架构的复制原理及配置详解

 

1、原理及配置可参考链接:http://blog.csdn.net/hguisu/article/details/7325124

2、注意点:

(1)配置master和配置slave,添加配置项的位置都在前面

配置master:

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#以下为主从数据库配置
server-id=1
log-bin=mysql-bin

配置slave:

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#以下为主从数据库配置
log_bin           = mysql-bin
server_id         = 2
relay_log         = mysql-relay-bin
log_slave_updates = 1
read_only         = 1

(2)

master将改变记录到二进制日志(binary log)中:路径为  datadir=/var/lib/mysql

slave的中继日志(relay log)位置: datadir=/var/lib/mysql

(3)

如果master更改slave的用户名和密码,首先停掉slave,之后需要重启master,这时master会重新生成一个二进制文件,然后slave再重新连接master,并且连接的是master的当前二进制文件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值