# xampp

# linux环境安装xampp

  • 下载:从官网下载对应的版本的xampp(不一定非得是wget,也可以是其他):
wget https://www.apachefriends.org/xampp-files/7.2.1/xampp-win32-7.2.1-0-VC15-installer.exe
  • 安装:
// 更改权限
chmod 755 xampp-linux-*-installer.run
// 开始安装
sudo ./xampp-linux-*-installer.run
  • 常用操作
// 启动
sudo /opt/lampp/lampp start
// 停止
sudo /opt/lampp/lampp stop
// 重启
sudo /opt/lampp/lampp restart

# xampp升级

symfony4.1版本后,明确说明PHP需要7.1以上,而我的PHP版本为7.0,只能升级版本

以前的安装方式是按照xampp官网的教程使用安装包安装,但是找遍了百度,谷歌,官网,stackoverflow,也没有找到一个明确的教程来说明如何直接升级版本,只能由自己瞎捣鼓了

未以防万一,我首先将项目文件,和httpd.conf,httpd-vhosts.conf二个文件复制到了其他地方,然后在lampp目录下,我看到了一个uninstall的东西,执行此文件./uninstall,一顿删除后,发现还留下了几个文件, xampp 进入htdocs目录发现项目都还在,这个不错。

wget下载最新的xampp安装包(wget在centos7需要自己安装,不一定非得wget),安装上述官网教程安装后,成功安装,PHP -v查看版本,可以看出PHP升级到了7.2

检测项目和网站能否打开。启动apache,mysql后随便打开了一个网站,

xampp

看这情况,apache是没问题的,应该是数据库连接不对,登录mysql查看,初始的mysql是没密码的,看mysql数据库下的user表,会发现只有五个默认的用户,自行配置增加用户给予权限后,网站恢复.因此可以考虑在卸载前备份一份用户表,否则可能会出现一些不可预料的问题,如在重新安装后,部分数据表可能会出现损坏的情况,如:

Table 'piplin.providers' doesn't exist in engine

可以通过show tables看到,但无法使用 最后就是一些常规配置了,如隐藏版本号等等,按照以前的流程就好

# 开启Gzip压缩

  • 开启Gzip压缩会加快速度,但会消耗额外的CPU资源。

# 使用方法

进入httpd.conf

//开启这两个,mod_deflate默认不启用
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

//在末尾加上
<IfModule deflate_module>
SetOutputFilter DEFLATE
//不压缩图片
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
//压缩html,纯文本,xml和css
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
</IfModule>
  • 或者在.htaccess中
<IfModule mod_deflate.c>  
SetOutputFilter DEFLATE  
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary  
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary  
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary  
AddOutputFilterByType DEFLATE text/*  
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript  
application/javascript application/x-javascript  
AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp  
BrowserMatch ^Mozilla/4 gzip-only-text/html  
BrowserMatch ^Mozilla/4.0[678] no-gzip  
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html  
</IfModule>  

# 按天存储日志

# 使用方法

进入http.conf

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
CustomLog "|bin/rotatelogs.exe -l logs/access.%A.log 15M"

# 隐藏版本号

  • 在生产环境会比较注重安全,会有些操作,其中之一就是因此版本号

  • 首先隐藏apache版本号,查看httpd.conf有没有引入httpd-default.conf文件

    • 引入了则修改httpd-default.conf,未引入则在httpd.conf下
    ServerTokens Prod 
    ServerSignature Off
    
  • 隐藏PHP版本号

    • 修改php.ini文件
    expose_php Off
    

# xampp重启失败

  • 在重启xampp时,apace无法关闭
[root@localhost etc]# /opt/lampp/lampp restartapache
XAMPP: Stopping Apache...fail.
apachectl returned 1.
XAMPP: Starting Apache...already running.
  • 解决办法

    • 删除如下文件
    $XAMPP_ROOT/logs/httpd.pid
    $XAMPP_ROOT/var/proftpd.pid
    
    • 再次重启出现如下问题(以下问题为个人出现的问题,上一步解决后如果提示没有日志文件什么的,手动建一个即可)
    [root@localhost var]# /opt/lampp/lampp startapache
    XAMPP: Starting Apache...fail.
    XAMPP:  Another web server is already running.
    
    • 说明已关闭,但是启动失败,端口被占用,杀掉占用进程
    [root@localhost var]# /opt/lampp/lampp restart
    Restarting XAMPP for Linux 7.0.13-0...
    XAMPP: Stopping Apache...not running.
    XAMPP: Stopping MySQL...ok.
    XAMPP: Stopping ProFTPD...not running.
    XAMPP: Starting Apache...fail.
    XAMPP:  Another web server is already running.
    XAMPP: Starting MySQL...ok.
    XAMPP: Starting ProFTPD...fail.
    XAMPP:  Another FTP daemon is already running.
    
    • apche与proftpd都失败,先解决apache,默认端口80
     lsof -i :80
    COMMAND     PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    java      10422   root  409u  IPv6 75695834      0t0  TCP localhost.localdomain:36270->202.121.199.235:http (ESTABLISHED)
    
    • 杀掉进程,再次重启
    [root@localhost var]# /opt/lampp/lampp restart
    Restarting XAMPP for Linux 7.0.13-0...
    XAMPP: Stopping Apache...not running.
    XAMPP: Stopping MySQL...ok.
    XAMPP: Stopping ProFTPD...not running.
    XAMPP: Starting Apache...fail.
    XAMPP:  Starting diagnose...
    XAMPP:  Sorry, I've no idea what's going wrong.
    XAMPP:  Please contact our forum http://www.apachefriends.org/f/
    Last 10 lines of "/opt/lampp/logs/error_log":
    tail: 无法打开"/opt/lampp/logs/error.log" 读取数据: 没有那个文件或目录
    XAMPP: Starting MySQL...ok.
    XAMPP: Starting ProFTPD...fail.
    XAMPP:  Another FTP daemon is already running.
    
    • 相应目录创建error.log文件,重启后apache启动成功,但proftpd还是失败
    [root@localhost logs]# /opt/lampp/lampp restart
    Restarting XAMPP for Linux 7.0.13-0...
    XAMPP: Stopping Apache...ok.
    XAMPP: Stopping MySQL...ok.
    XAMPP: Stopping ProFTPD...not running.
    XAMPP: Starting Apache...ok.
    XAMPP: Starting MySQL...ok.
    XAMPP: Starting ProFTPD...fail.
    XAMPP:  Another FTP daemon is already running.
    [root@localhost logs]# ps -aux |grep ftp
    root     21483  0.0  0.0  54800  1684 ?        Ss   08:46   0:00 /usr/libexec/openssh/sftp-server
    root     21538  0.0  0.0  54800  1496 ?        Ss   08:46   0:00 /usr/libexec/openssh/sftp-server
    root     24356  0.0  0.0  54800  2104 ?        Ss   09:54   0:00 /usr/libexec/openssh/sftp-server
    root     24397  0.0  0.0  54800  1908 ?        Ss   09:55   0:00 /usr/libexec/openssh/sftp-server
    root     24677  0.0  0.0  54800  2104 ?        Ss   10:01   0:00 /usr/libexec/openssh/sftp-server
    daemon   25162  0.0  0.0  45032  1980 ?        Ss   10:06   0:00 proftpd: (accepting connections)
    root     28034  0.0  0.0 114712   976 pts/2    S+   10:23   0:00 grep --color=auto ftp
    
    • kill -9 25162杀掉进程,重启xampp
    [root@localhost logs]# /opt/lampp/lampp restart
    Restarting XAMPP for Linux 7.0.13-0...
    XAMPP: Stopping Apache...not running.
    XAMPP: Stopping MySQL...ok.
    XAMPP: Stopping ProFTPD...ok.
    XAMPP: Starting Apache...ok.
    XAMPP: Starting MySQL...ok.
    XAMPP: Starting ProFTPD...ok.
    
    • 成功