lanp1.1-2.4

回复 收藏

mysql5.7 二进制包安装

  1 下载包并使用FTP协议传输到 /mnt目录下

  2 解压并移动到 /usr/local/mysql目录下

tar -xvf mysql-5.7.17-linux-glibc2.5-i686.tar

mv mysql-5.7.17-linux-glibc2.5-i686  /usr/local/mysql

  3 初始化

useradd -M -s /sbin/nologin  mysql      //添加用户但不创建家目录

mkdir -p /data/mysql

chown mysql /data/mysql

cd /usr/local/mysql

./bin/mysqld  --initialize --user=mysql --datadir=/data/mysql     //初始化用户为mysql,数据存储目录为/data/mysql

注意,这一步最后一行会有一个提示

[Note] A temporary password is generated for root@localhost: B*s1i(*,kXwg

最后面的字符串为root密码。

./bin/mysql_ssl_rsa_setup --datadir=/data/mysql                       //MySQL服务器开启SSL功能

4. 拷贝配置文件和启动脚本

cp support-files/my-default.cnf  /etc/my.cnf

vim /etc/my.cnf //编辑或者修改

basedir = /usr/local/mysql

datadir = /data/mysql

port = 3306

socket = /tmp/mysql.sock

cp support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld   //编辑或者修改

basedir=/usr/local/mysql          //安装路径

datadir=/data/mysql                //数据文件存放路径

编译参数# cat /usr/local/mysql/bin/mysqlbug|grep configure   不适用于mysql  5.7

5. 启动服务

/etc/init.d/mysqld start

Starting MySQL.Logging to '/data/mysql/suning.err'    //启动日志存放位置

日志中此错误的解决办法

[ERROR] SSL error: Unable to get private key from 'server-key.pem'

chmod 644 server-key.pem

6. 设置root密码

a  使用初始化密码登录

/usr/local/mysql/bin/mysql -uroot -p'B*s1i(*,kXwg'  //进入后直接设置密码

mysql>set password = password('mypass');   //一定要设置一下新密码

退出来,再使用新的密码登录就可以了

b  还有一种情况,就是不知道初始化密码

vi /etc/my.cnf

在[mysqld]下面增加一行

skip-grant-tables

重启  /etc/init.d/mysqld restart

/usr/local/mysql/bin/mysql -uroot

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql,建立软连接,这样以后直接用mysql就可以启动了

mysql> update mysql.user set authentication_string=password('688992') where user='root';

退出来后,更改my.cnf,去掉刚加的 skip-grant-tables

重启 /etc/init.d/mysqld restart

此时就可以使用新的密码了。

卸载方法

如果是卸载咱们的方法安装的mysql,具体做法是:

1. 停掉服务

2. 删除/usr/local/mysql

3. 删除/data/mysql

4. 删除/etc/my.cnf

5. 删除启动脚本

6. 删除mysql用户

Apache  httpd安装

apache官网下载地址: http://www.apache.org/dyn/closer.cgi

提前安装库文件:yum install -y pcre pcre-devel apr apr-devel zlib-devel

1   下载并解压

tar -jxvf  

2    配置编译参数:

[root@localhost src]# cd httpd-2.2.16

[root@localhost httpd-2.2.16]# ./configure \

--prefix=/usr/local/apache \                                      //指定安装目录

--with-included-apr \                                                //apache依赖包,支持httpd跨平台安装

--enable-so \                                                             //表示启用DSO

--enable-deflate=shared \                                        // 表示共享的方式编译deflate

--enable-expires=shared \

--enable-rewrite=shared \

--with-pcre                                                              // 正则相关的库

回车

echo $?

返回0,表示无错误

3  make

echo $?

4  make install 

echo $?

上面的编译参数保存在/usr/local/apache2/build/config.nice

启动

/usr/local/apache2/bin/apachectl start / stop / restart(进程关闭再启动)  /  graceful(原来的进程还在,重新加载配置文件)

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

编辑  配置文件 /usr/local/apache2/conf /httpd.conf

找到#ServerName www.example.com:80   把#去掉,再重启apache即可没事了

ps aux | grep httpd    //查看进程是否启动

netstat -lnp               //查看端口

/usr/local/apache2/bin/apachectl -M                    //查看所有模块(shared-动态共享   static-静态)

/usr/local/apache2/bin/apachectl -l                      //查看静态模块

/usr/local/apache2/bin/apachectl -t                     //查看配置文件(/usr/local/apache2/conf /httpd.conf)有无语法错误

动态

ls /usr/local/apache2/modules

     httpd.exp  mod_deflate.so  mod_expires.so  mod_rewrite.so

     其中以so结尾的为动态共享文件,当程序用到时,自动加载

静态

du -sh /usr/local/apache2/bin/httpd

     1.7M    /usr/local/apache2/bin/httpd

     静态模块编译保存在/usr/local/apache2/bin/httpd,静态模块在程序启动时自动加载

三种常用工作模式---查资料了解更多

prefork:主进程下派生很多子进程

worker:主进程下派生子进程,子进程下派生线程

event:worker的升级版

/usr/local/apache2/bin/apachectl -l

在查看静态模块的结果中,有项  prefork.c  ,是Apache2.2的默认工作模式;2.4默认是event

在安装包httpd-2.2.16里,./configure --help 中查找  --with-mpm选项指定工作模式

DSO是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。

安装PHP

1  下载并解压

 tar -Jxvf php-5.6.29.tar.xz

2 配置编译参数:

 cd php-5.3.27

 ./configure \

--prefix=/usr/local/php \

--with-apxs2=/usr/local/apache2/bin/apxs \           //自动安装扩展模块的工具,在apache2/modules/目录下多了libphp5.so

--with-config-file-path=/usr/local/php/etc  \

--with-mysql=/usr/local/mysql \                             //依赖于MySQL

--with-libxml-dir \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-iconv-dir \

--with-zlib-dir \

--with-bz2 \

--with-openssl \

--with-mcrypt \

--enable-soap \

--enable-gd-native-ttf \

--enable-mbstring \

--enable-sockets \

--enable-exif \

--disable-ipv6

/usr/local/php/bin/php -i |grep configure(编译参数)  

3 make         echo $?   0

4 make install            echo $?             0

安装完成

配置文件:/usr/local/php/etc/php.ini

/usr/local/php/bin/php -m      显示静态加载的模块

/usr/local/php/bin/php -i        显示相关配置

测试php解析

因为php安装时产生了新模块,所以Apache需要重启

  /usr/local/apache2/bin/apachectl  restart

访问公网IP地址  101.200.61.81    //记得关闭防火墙

查看Apache配置文件,确定项目运行目录,添加解析php的配置

/usr/local/apache2/htdocs        //apache的运行项目位置 

Apache主配置文件为:/usr/local/apache2/conf/httpd.conf

vim /usr/local/apache2/conf/httpd.conf

1  找到:AddType application/x-gzip .gz .tgz

在该行下面添加:AddType application/x-httpd-php .php

2  找到:

<IfModule dir_module>

    DirectoryIndex index.html

</IfModule>

将该行改为:

<IfModule dir_module>    DirectoryIndex index.html index.htm index.php

</IfModule>

3  找到:

#ServerName www.example.com:80

修改为:

ServerName localhost:80

4   检查配置是否正确  /usr/local/apache2/bin/apachectl -t

5  设置php配置文件        cp /usr/local/src/php-5.6.29/php.ini-development /usr/local/php/etc/php.ini(开发板或者生产版)

6  重启Apache配置文件    /usr/local/apache2/bin/apachectl graceful

curl     http://101.200.61.81/info.php  不用切换到浏览器访问

/usr/local/php/bin/php 2.php,也能返回浏览器的输出结果

/usr/local/php/bin/php -i   等于浏览器访问php.info(phpinfo()函数)

discuz论坛

mkdir /data/www

cd /data/www

下载并解压discuz 包,生成3个文件(readme  upload   utility)

将upload的内容移到当前目录下,删除其他以外文件

mv upload/* .

rm -rf utility/ Discuz_X3.2_SC_UTF8.zip readme/

配置Apache

1   vim /usr/local/apache2/conf/httpd.conf

将  #Include conf/extra/httpd-vhosts.conf  前面的井号  # 去掉

2    vim /usr/local/apache2/conf/extra/httpd-vhosts.conf   作如下更改

          <VirtualHost *:80>

      ServerAdmin 1107914055@qq.com

      #管理员邮箱

      DocumentRoot /data/www

      ServerName www.test.com

      ServerAlias www.aaa.com

      #ErrorLog "logs/dummy-host.example.com-error_log"

      #CustomLog "logs/dummy-host.example.com-access_log" common

          </VirtualHost>

 3   /usr/local/apache2/bin/apachectl -t    //检查语法错误  

Syntax OK

4    vim  /etc/hosts

在本机的hosts    \windows\system32\drivers\etc\hosts   中添加   101.200.61.81 www.test.com www.aaa.com

5   本机访问    www.test.com

               显示forbidden

6   vim /vim /usr/local/apache2/conf/httpd.conf

          <Directory />

     Options FollowSymLinks

     AllowOverride None

     Order deny,allow

     Deny from all    //deny改为Allow

         </Directory>

    vim //usr/local/apache2/bin/apachectl -t

    Syntax OK

    /usr//usr/local/apache2/bin/apachectl restart

7   进入discuz安装界面

8   更改文件属主为Apache的运行属主

9   选择第一项默认(全新安装)

10  配置mysql

          10-1     进入mysql   :mysql  -uroot   -p

          10-2     create database discuz;

          10-3     grant all on discuz.* to 'suning'@'localhost' identified by 'suninglinux';

命令格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"                    

权限:select/insert/update/delete/all,多个权限之间用英文逗号隔开。  

数据库:数据库名称,或者使用“*”代替所有数据库。  

登录主机:localhost/具体IP/%,其中“%”代表除localhost之外的所有IP

11   在discuz中岸上一步设置具体参数

Apache用户认证

在discuz的安装目录下创建一个新目录 abc,并且为他添加权限

cd /data/www

mkdir abc

编辑Apache虚拟主机配置文件   vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

 27 <VirtualHost *:80>

 28     ServerAdmin 1107914055@qq.com

 29     #管理员邮箱

 30     DocumentRoot /data/www

 31     ServerName www.test.com

          ServerName www.bbb.com

 32     ServerAlias www.aaa.com

 33     #ErrorLog "logs/dummy-host.example.com-error_log"

 34     #CustomLog "logs/dummy-host.example.com-access_log" common

 35     <Directory /data/www/abc>

 36         AllowOverride AuthConfig

 37         AuthName "自定义的提示"

 38         AuthType Basic

 39         AuthUserFile /data/.htpasswd

 40         require valid-user

 41     </Directory>

 42 </VirtualHost>

创建用户   /usr/local/apache2/bin/htpasswd  -c  /data/.htpasswd  suning1    //创建用户    suning1  ,及密码123456789

               /usr/local/apache2/bin/htpasswd    /data/.htpasswd   user2        //创建用户2,不用再加-c

/usr/local/apache2/bin/apachectl -t

Syntax OK

 /usr/local/apache2/bin/apachectl restart

配置默认虚拟主机

在配置好的<virtualHost>前面添加

<VirtualHost *:80>

         DocumentRoot /tmp/123

         ServerName 1111.com

</VirtualHost>

再重启Apache后,将不能通过ip访问,只能通过设置的www.test.com、www.aaa.com访问

301跳转

使用Apache的rewrite_module模块

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在第二个virtualHost中添加模块ifmodule

     <IfModule mod_rewrite.c>

          RewriteEngine on

          RewriteCond %{HTTP_HOST} ^www.aaa.com$  [OR]

          RewriteCond %{HTTP_HOST} ^www.bbb.com$

          RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]   #301永久跳转,302临时跳转

     </IfModule>

/usr/local/apache2/bin/apachectl -t

 /usr/local/apache2/bin/apachectl  restart 

Apache日志切割

  编辑Apache虚拟主机配置文件   vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

   去掉下面两行前面的井号#  ,也可以自定义路径和名称,logs是相对于 /usr/local/apache2来说的

 #ErrorLog "logs/dummy-host.example.com-error_log"

 #CustomLog "logs/dummy-host.example.com-access_log" common 

 //common的具体格式在Apache主配置文件中查看

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined (常用)

 LogFormat "%h %l %u %t \"%r\" %>s %b" common  

日志切割处理

CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/suning_discuz.cus-access_%Y%m%d_log 86400" combined    //86400是一天的秒数,以日期结尾分割

配置文件从新启动 

/usr/local/apache2/bin/apachectl graceful

Apache 不记录指定文件类型的日志

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在第二个virtualHost中customlog上方添加,并添加  env=!image-request

          ErrorLog "logs/suning_discuz.err"

       SetEnvIf Request_URI ".*\.gif$" image-request

       SetEnvIf Request_URI ".*\.jpg$" image-request

       SetEnvIf Request_URI ".*\.png$" image-request

       SetEnvIf Request_URI ".*\.bmp$" image-request

       SetEnvIf Request_URI ".*\.swf$" image-request

       SetEnvIf Request_URI ".*\.js$" image-request

       SetEnvIf Request_URI ".*\.css$" image-request

        CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/suning_discuz.cus-access_%Y%m%d_log 86400" com    bined env=!image-request

重启

/usr/local/apache2/bin/apachectl restart

配置静态缓存

在虚拟配置文件中的IfModules mod_expires.c模块上方添加静态模块

 48      <IfModule mod_expires.c>

 49         ExpiresActive on

 50         ExpiresByType image/gif "access plus 1 days"

 51         ExpiresByType image/jpeg "access plus 24 hours"

 52         ExpiresByType image/png "access plus 24 hours"

 53         ExpiresByType image/css "now plus 2 hours"

 54         ExpiresByType application/x-javascript "now plus 2 hours"

 55         ExpiresByType application/x-shockwave-flash "now plus 2 hours"

 56         ExpiresDefault "now plus 0 min"

 57      </IfModule>

重新加载配置文件/usr/local/apache2/bin/apachectl graceful

测试curl -x101.200.61.81:80 'http://101.200.61.81/static/image/common/logo.png' -I

HTTP/1.1 200 OK

Date: Tue, 27 Dec 2016 14:47:56 GMT

Server: Apache/2.2.31 (Unix) PHP/5.6.29

Last-Modified: Tue, 31 May 2016 03:08:36 GMT

ETag: "160a81-1149-5341ab0597500"

Accept-Ranges: bytes

Content-Length: 4425

Cache-Control: max-age=86400      #呼应上方的24hours

Expires: Wed, 28 Dec 2016 14:47:56 GMT

Content-Type: image/png

Apache配置防盗链

 在虚拟配置文件添加

 59      SetEnvIfNoCase Referer "^https://.*\.test\.com" local_ref #白名单,允许自己的网站使用

 60      SetEnvIfNoCase Referer ".*\.aminglinux\.com" local_ref #白名单,允许其他网站调用

 61      <filesmatch "\.{txt|doc|mp3|zip|rar|jpgg|gif|png|js|css}">

 62         Order Allow,Deny

 63         Allow from env=local_ref

 64      </filesmatch>

Apache访问控制

2016-12-27 23:36 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: