LAMP环境搭建
1. 下载
yum install gcc gcc-c++ cmake ncurses ncurses-devel bison wget openssl-devel -y
rpm -qa | grep mysql
rpm -qa| grep mariadb
yum install gcc gcc-c++ cmake ncurses ncurses-devel bison wget openssl-devel -y
2.建立mysql 组,<--新建mysql用户
1. groupadd mysql
2. useradd -g mysql -s /sbin/nologin -u 49 -M mysql
3. mkdir -p /data/mysql/data
4. mkdir -p /data/mysql/log
5. mkdir -p /data/mysql/trpmmp
6. mkdir -p /data/mysql/binlog
7. mv boost_1_59_0 /usr/local/boost
8. tar fx mysql-5.7.29.tar.gz
9. cd /usr/local/mysql57
10. ls
12. cd mysql-5.7.29/
13. yum install gcc gcc-c++ cmake ncurses ncurses-devel bison wget openssl-devel -y
14. ls
15. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_UNIX_ADDR=/data/mysql/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_EMBEDDED_SERVER=OFF -DWITH_DEBUG=0 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 \ #安装目录
-DSYSCONFDIR=/etc \ #配置文件目录
-DMYSQL_DATADIR=/data/mysql/data \ #数据目录
-DMYSQL_UNIX_ADDR=/data/mysql/tmp/mysql.sock \ #sock文件位置,套接字位置
-DDEFAULT_CHARSET=uls
tf8 \ #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ #默认字符集校验规则,避免中文乱码
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \ #额外的字符集支持
-DENABLED_LOCAL_INFILE=ON \ #是否启用加载本地数据,允许从本地文件读取数据
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #启用innodb存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \ #启用blackhole存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #启用FEDERATED存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ #不使用example存储引擎
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \ #不使用PARTITION引擎
-DWITH_ZLIB=bundled \ #启用zlib支持,与压缩相关
-DWITH_EMBEDDED_SERVER=OFF \ #嵌入式服务设置
-DWITH_DEBUG=0 \ #禁用dbug,开启影响性能
-DWITH_SYSTEMD=1 \ #支持systemd服务
-DWITH_BOOST=/usr/local/boost #指定boost库位置,从5.7开始,安装需要boost库
16. ls
17. make -j4 && make install
18. [root@node1 mysql-5.7.29]# chown -R mysql.mysql /data/mysql/
19. [root@node1 mysql-5.7.29]# chown -R mysql.mysql /usr/local/mysql57/
20. [root@node1 mysql-5.7.29]# echo 'export PATH=/usr/local/mysql57/bin:$PATH' >> /etc/profile
21. [root@node1 mysql-5.7.29]# tail -1 /etc/profile
23. [root@node1 mysql-5.7.29]# source /etc/profile
配置 mysql
[client] #客户端设置
port = 3306
socket = /data/mysql/tmp/mysql.sock
default-character-set = utf8mb4
[mysqld]
user = mysql
port = 3306
datadir = /data/mysql/data/ #数据库存放目录
tmpdir = /data/mysql/tmp #临时文件位置
socket = /data/mysql/tmp/mysql.sock #socket文件位置
server-id = 1 #用于mysql主从
pid-file = /data/mysql/tmp/mysql.pid #pid文件位置
basedir = /usr/local/mysql57 #安装目录
character_set_server = utf8mb4 #系统数据库编码设置
collation_server = utf8mb4_bin #字符集校对规则
back_log = 1024 #满负荷时,能够对方的请求数,也就是监听的TCP/IP连接队列的大小
explicit_defaults_for_timestamp = ON #timestamp类型字段所在数据行被更新时,该字段不会自动更新为当前时间
lower_case_table_names = 0 #区分大小写
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION #语法校验规则
max_connections = 512 #最大连接数
max_connect_errors = 1000000 #如果MySQL服务器连续接收到了来自于同一个主机的请求,而且这些连续的请求全部都没有成功的建立连接就被中断了,当这些连续的请求的累计值大于max_connect_errors的设定值时,MySQL服务器就会阻止这台主机后续的所有请求。主要是网络异常
table_open_cache = 1024 #缓存打开的表的数量,mysql每打开一个表,都会读入一些数据到table_open_cache缓存中,当mysql在这个缓存中找不到相应的信息时,才会去磁盘上直接读取。
max_allowed_packet = 8M #指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。
thread_stack = 256K #线程堆栈大小,太小则会限制服务器可以处理的SQL语句的复杂性,存储过程的递归深度以及其他消耗内存的操作.
thread_cache_size = 384 #线程池缓存大小 个
skip-external-locking #跳过外部锁定,当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据 表时经常需要等待解锁,因此在单服务器环境下external locking会让MySQL性能下降。
interactive_timeout = 600 #服务器在关闭交互式连接前,客户端等待的秒数。
wait_timeout = 3600 #服务器在关闭非交互式连接前,应用程序等待的秒数
log_timestamps = SYSTEM #这个参数主要是控制 error log、slow_log等等记录日志的显示时间参数 SYSTEM=系统时间,可以避免看错误日志、慢查询日志的时候,时间总是和本地时间对不上
log-bin = /data/mysql/binlog/mysql-bin #二进制日志存放位置,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息
log-error = /data/mysql/log/mysql-error.log #错误日志存放位置
default_storage_engine=InnoDB #定义默认的存储引擎
24. [root@node1 mysql-5.7.29]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql/data
socket=/data/mysql/tmp/mysql.sock
symbolic-links=0
explicit_defaults_for_timestamp=ON
default_storage_engine=InnoDB
server-id=1
pid-file=/data/mysql/tmp/mysql.pid
basedir=/usr/local/mysql57
character_set_server=utf8mb4
collation_server=utf8mb4_bin
log-bin=/data/mysql/binlog/mysql-bin
log-error=/data/mysql/log/mysql-error.log
25. 初始化mysql
[root@node1 mysql-5.7.29]# /usr/local/mysql57/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data
26. 制作服务
[root@node1 mysql-5.7.29]# cp /usr/local/mysql57/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
27. [root@node1 mysql-5.7.29]# vim /usr/lib/systemd/system/mysqld.service
PIDFile=/data/mysql/tmp/mysql.pid
ExecStart=/usr/local/mysql57/bin/mysqld --daemonize --pid-file=/data/mysql/tmp/mysql.pid $MYSQLD_OPTS
28. [root@node1 mysql-5.7.29]# systemctl daemon-reload
29. [root@node1 mysql-5.7.29]# systemctl start mysqld.service
30. [root@node1 mysql-5.7.29]# lsof -i :3306
31. [root@node1 mysql-5.7.29]# mysql -u root -p
下午:
01
更新:flush privileges;
修改密码:
mysql管理员也是root,但不与系统中的是一个,只是重名。改密码之后,刷新 flush
查看表内容:
select * from databasename.tablename;
select * from databasename.tablename\G
密码字段5.7:
添加数据
insert into
mysql> create database chaitin;
mysql> use chaitin;
mysql> create table user (names char(18) not null,tel char(11) not null default 0);
mysql> insert into chaitin.user (names,tel) values ("zhangsan","12312341234");
mysql> insert into chaitin.user values ("lisi","12312341235");
mysql> insert into chaitin.user (names) values ("tom");
mysql> insert into chaitin.user values("wangwu","12312341236"),("laowang","12312341237");
mysql> select * from chaitin.user;
更新
update databasename.tablename set ..... where
mysql> update chaitin.user set tel=55555555555 where names='tom';
mysql5.7没有password子段,使用的是authentication_string
mysql> flush privileges
删除
delete from database.tablename where xxxx=xxx
mysql> delete from chaitin.user where names='tom';
设置权限
grant 权限,权限 on 库名.表名 to 用户名@主机 identified by '密码'
create
drop
delete
update
insert
all
设置权限
mysql> grant all on bbsdb.* to 'runbbs'@'localhost' identified by 'admin123';
查看权限
mysql> show grants for 'runbbs'@'localhost';
撤销权限
revoke 权限,权限 库名.表名 from username;
mysql> revoke update on bbsdb.* from 'runbbs'@'localhost';
LAMP
apache
参照之前安装方法
加密
[root@node1 lamp]# tar fx libmcrypt-2.5.8.tar.gz
[root@node1 lamp]# cd libmcrypt-2.5.8/
[root@node1 libmcrypt-2.5.8]# ./configure && make && make install
[root@node1 lamp]# tar fx mhash-0.9.9.9.tar.gz
[root@node1 lamp]# cd mhash-0.9.9.9/
[root@node1 mhash-0.9.9.9]# ./configure && make && make install
[root@node1 mhash-0.9.9.9]# ln -s /usr/local/lib/* /usr/lib/
[root@node1 mhash-0.9.9.9]# ln -s /usr/local/bin/libmcrypt-config /usr/bin/
[root@node1 lamp]# tar fx mcrypt-2.6.8.tar.gz
[root@node1 lamp]# cd mcrypt-2.6.8/
[root@node1 mcrypt-2.6.8]# vim /etc/profile
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@node1 mcrypt-2.6.8]# source /etc/profile
[root@node1 mcrypt-2.6.8]# ldconfig
[root@node1 mcrypt-2.6.8]# ./configure && make && make install
安装PHP
[root@node1 lamp]# yum install libxml2-devel -y
[root@node1 lamp]# cd /usr/local/mysql57/lib/
[root@node1 lib]# ln -s libmysqlclient.so.20.3.16 libmysqlclient_r.so
[root@node1 lamp]# tar fx php-5.5.38.tar.gz
[root@node1 php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql57 --with-config-file-path=/usr/local/php5 --enable-mbstring
[root@node1 php-5.5.38]# make -j4 && make install
调整PHP&APACHE
[root@node1 php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini
[root@node1 php-5.5.38]# vim /usr/local/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
##添加一行
AddType application/x-httpd-php .php
##添加内容
DirectoryIndex index.html index.php
重启apache
apachectl stop
apachectl start
生成测试页面
test1.php
[root@node1 php-5.5.38]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo();
?>
浏览器访问
http://localhost/test1.php
测试数据库
test2.php
<?php
$link=mysql_connect('localhost','root','Qwer1234');
if ($link) echo "mysql ok";
mysql_close();
?>
部署论坛
[root@node1 lamp]# yum install unzip zip -y
[root@node1 lamp]# unzip Discuz_7.2_FULL_SC_UTF8.zip
[root@node1 lamp]# cp -r /root/lamp/Discuz_7.2_FULL_SC_UTF8/upload/ /usr/local/httpd/htdocs/bbs
[root@node1 bbs]# chown -R daemon templates/ attachments/ forumdata/ uc_client/data/cache/ config.inc.php
[root@node1 bbs]# vim /usr/local/php5/php.ini
short_open_tag = On
重启apache
localhost/bbs/install
[root@node1 lamp]# tar fx phpMyAdmin-4.5.5-all-languages.tar.gz
[root@node1 lamp]# mv phpMyAdmin-4.5.5-all-languages /usr/local/httpd/htdocs/phpMyAdmin
[root@node1 lamp]# cd /usr/local/httpd/htdocs/phpMyAdmin/
[root@node1 phpMyAdmin]# cp config.sample.inc.php config.inc.php
localhost/phpMyAdmin
#####################
如果报错 2002-没有文件或目录
修改config.inc.php
$cfg['Servers'][$i]['host'] = 'localhost';
改为
$cfg['Servers'][$i]['host'] = '127.0.0.1';
flush privileges;
安装apache