服务器相关

Laragon快速搭建自动化Windows 10本地开发环境

Laragon在升级MySQL、PHP、Nginx等各种软件这件事上,Sola还没遇到过比它更简单的。Sola一直用Neard,升级也比较容易,但需要做一些配置,而作者的文档不那么详细。而Laragon的升级,就是把网上的软件包下载下来,放到对应目录里,再切换下版本就完事了,这个思路真的很无敌。

Laragon便携版和完整版如何选择

Laragon的完整版是一个需要安装的windows .exe程序,但使用上和便携版基本没有区别。如果你想使用Laragon的所有功能, 建议安装完整版。完整版配置如下(Laragon 6.0):

  • Apache 2.4
  • Nginx
  • MySQL 8
  • PHP 8
  • Phpmyadmin
  • Heidisql
  • Redis & Redis Admin (php扩展需要自己安装,web admin在https://localhost/redis/
  • Memcached & Memcached Admin(php扩展需要自己安装,web admin地址https://localhost/memcached/,用户名mem,密码1)
  • Node.js
  • composer
  • git
  • ngrok
  • python

开发python程序,不想自己装phpmyadmin,在开发中想借助redis或memcached加速网站运行速度,那就选完整版吧。如果你已经使用nvm安装了node,或者在其它地方装了composer,就可以把laragon下面的相关内容删除,laragon可配置性非常强,大部分内容都可以添加或移除。

Sola安装的是便携版,大小为38M,基本只有php、mysql和nginx,能跑网站,选择这个版本也没有特殊的目的,就是想看看怎么升级一些东西。其实完整版和便携版完全可以一起运行。

安装Laragon便携版

首先到下载代码包,选择“Download Laragon – Portable (38 MB)”。

Sola Blog-下载Laragon便携版

将压缩包放到你想安装的文件夹下,比如Sola选择放到G:\laragon路径下,将压缩包解压到当前位置即可,然后点击laragon.exe运行软件。

Sola Blog-运行laragon.exe

运行后弹出软件总控制界面,需要点击窗口左下角的Start All按钮启动Nignx和MySQL服务。

Sola Blog-laragon开始运行

启动服务后,会显示服务的版本号和占用的端口号,注意MySQL和Nginx的版本,非常旧,不满足WordPress安装的最低配置。

Sola Blog-Laragon总控制台

在安装后能否直接使用这一点上,Neard胜出。为了能正常使用该软件,Sola还需要升级Nginx、PHP和MySQL的版本,并安装最新的Phpmyadmin软件查看数据库。

升级Nginx

打开http://nginx.org/en/download.html下载Stable version,然后将压缩包放到G:\laragon\bin\nginx目录下,解压到当前目录,和安装MySQL相同,用菜单里的Nginx菜单切换一下版本即可。

升级PHP和MySQL

Laragon的一大优势是升级软件版本非常容易,有两种方法:

  1. 在快速安装的配置文件里配置好所需软件的下载路径,用软件菜单里的Quick add一键升级。
  2. 将安装文件拷贝到软件对应的目录里就完事了。

用方法一升级PHP

打开G:\laragon\usr\packages.conf,或者点击屏幕右下角的软件菜单,依次打开Tools > Quick Add > Configuration。配置文件里记录了每个软件的下载地址,Sola想安装PHP 8.0以上的版本,所以找到

# PHP
php=https://windows.php.net/downloads/releases/php-7.3.3-Win32-VC15-x64.zip 

替换成

# PHP
php=https://windows.php.net/downloads/releases/php-8.0.22-Win32-vs16-x64.zip

更多的PHP版本的下载地址看这里

配置好后,右键点击屏幕右下角的软件菜单,依次点击Tools > Quick add > php

Sola Blog-用laragon快速升级php

弹出一个对话框,提示正在下载,下载完成后自动关闭。这时php 8.0已经下载到对应的目录,需要手动切换php版本。右键点击laragon图标,点击PHP > Version > php 8.0.22-Win32-vs16-x64,将php版本切换到8.0。至此,php配置完成。

用方法2升级PHP

如果第一种方法下载速度太慢,可以尝试自己下载php软件包来安装。浏览器直接打开https://windows.php.net/downloads/releases/php-8.0.22-Win32-vs16-x64.zip,将软件包下载到G:\laragon\bin\php,解压到当前目录即可。

Sola Blog-自己下载php安装包

这时就能从laragon的软件菜单里找到这个php 8.0.22版本,按照方法一里的切换php版本的方法操作即可。

升级MySQL

打开配置文件,找到

# mysql-8.0=https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-winx64.zip

改为:

mysql-8.0=https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-winx64.zip

保存文件,右键点击laragon图标,打开Tools > Quick add,选择mysql-8.0,弹出对话框下载MySQL。

下载完成后,先停止所有服务,然后通过图标 > MySQL > Version > mysql 8.0.15-winx64切换版本,再启动服务。

Sola Blog-Laragon切换mysql版本

至此,所有服务都升级到最新版本了,再看一下软件界面,MySQL和Nginx已经是最新版本。

Sola Blog-升级MySQL和Nginx到最新版

安装phpmyadmin

因为PHP升级到8.0后,phpmyadmin 4.9版本会报错,影响使用,所以需要将其升级到最新版本。

打开快速安装的配置文件,找到

# phpMyAdmin
*phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip  

替换成

# phpMyAdmin
*phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-english.zip 

右键点击Laragon图标,打开Tools > Quick add > *phpmyadmin,自动安装开始。安装结束后浏览器会自动跳转到http://localhost/phpmyadmin,用户名root密码为空,登录即可。

你可以在G:\laragon\etc\apps下找到phpmyadmin目录,但Sola推荐使用自动安装,因为需要创建config.inc.php文件,自动安装会替我们完成这个配置过程。

如果你选择手动安装,在confing.inc.php还没创建时,可以访问http://localhost/setup,这是一个图形界面的配置文件生成器。

安装MySQL和Phpmyadmin遇到的问题

在使用phpmyadmin时,遇到了一个有关用户和权限的问题——无法在图形界面里创建或删除数据库,也没有User accounts菜单

经过一番研究,感觉可能的原因是名为mysql的数据库下缺少很多表,比如mysql.user、 mysql.plugin、mysql.time_zone等,很明显,这些表是记录mysql数据库基本配置的表,但初始化时不知为何没有创建成功。

一番折腾后直接连MySQL服务都启动不起来了,查看mysql的log文件,提示的问题也是这些table不存在导致启动失败。

Can’t open the mysql.plugin table. Please run mysql_upgrade to create it

有文章说找到MySQL的安装文件把这些表拷贝过来,没找到这些文件,所以用import的方式导入了这些表,结果User accounts菜单有了,但还是提示没有权限创建数据库。

最后,终于发现,原因出在初始化过程,Laragon的初始化一定是有什么问题,才导致这些数据表没有创建成功。虽然不知道是什么问题,但知道怎么解决。根据这篇文章的方法:

  1. 停止Laragon的服务。
  2. 打开G:\laragon\data,将文件夹mysql-8重命名
  3. 打开Laragon的Terminal,运行mysqld --initialize-insecure
  4. 检查一下mysql-8文件夹是不是重新创建了

如果一切顺利,这时候再启动Laragon的服务,应该不会报错了,进入phpmyadmin,用户选项卡也有了,也能正常的创建和删除数据库了。

终于,我装好了最新版的Nginx、PHP、MySQL和phpmyadmin,可以捣鼓网站了。

题外话,如果需要更改phpmyadmin创建数据库时使用的默认字符序collation_server),可以修改my.ini,在[mysqld]部分添加代码:

collation_server=utf8mb4_unicode_ci

可以实现如果所示的效果,这样不管手动创建数据库,还是用Laragon自动创建,都能使用我们希望的字符序。

solagirl.net:更改服务器默认的字符序
更改默认collation,使用了自定义的phpmyadmin皮肤

关于字符集和字符序的概念,这篇文章介绍的很好。

创建虚拟主机并安装WordPress

Laragon支持自动修改Windonws的host文件,但需要去掉host文件的只读属性,所以第一步,导航到C:\Windows\System32\drivers\etc目录,右键点击host,在弹出的对话框里将去掉勾选只读

右键点击Laragon图标 > Quick app > WordPress,在弹出的对话框里填上域名,比如wordpress,那么会自动创建wordpress.test这个虚拟主机域名。

然后会自动下载WordPress安装包,解压缩,并将源文件放到G:\laragon\www\wordpress目录下。

最后,访问wordpress.test,如果打不开尝试刷新页面,应该能看到WordPress安装界面,按照提示安装就行了,数据库已经自动创建好。

配置域名规则

默认域名是{name}.test,如果我想改成{name}.local怎么办呢,方法是点击Laragon图标,打开Preferences,在第一个选项卡最下面就是域名规则。

Sola Blog-Laragon Preferences

切换MySQL版本

切换数据库版本涉及到数据问题,所以一定要备份数据,步骤如下:

  1. 停止所有服务
  2. 打开G:\laragon\data,将mysql-8文件夹重命名,比如命名成mysql-8.0.30
  3. 如果目标版本是第一次使用,直接到快捷菜单里切换MySQL版本
  4. 如果目标版本曾经用过,找到它的data文件夹,重命名为mysql-8
  5. 启动所有服务

安装Redis和Memcached

Redis和Memcached都能通过减少对数据库或其它外部资源的请求次数提升应用程序的访问速度。Laragon完整版对Redis和Memcached的支持非常完善,但还需要你自己做一点事情,就是安装php扩展。因为Laragon可以随意切换php版本,每个版本的php都对应不同的扩展,在安装时要注意扩展和php版本的匹配,简单说要考虑下面几个问题:

  • php是NTS还是TS,即非线程安全(None-Thread Safe)和线程安全(Thread Safe),NTS不提供多线程操作时的数据保护,但和PHP的Fast-CGI一起使用时具有更好的性能。
  • redis和memcached的php扩展也分NTS版和TS版,需要和正在使用的php版本保持一致。
  • php扩展分32位和64位版本,32为版本以x86结尾,windows系统是64位的,则php和PHP扩展都要选择x64的。

Sola使用Nginx+NTS版本的PHP 7.4.3,如下所示:

下载后,php解压到laragon/bin/php下,将php_redis.dllphp_redis.pdb拷贝到laragon/bin/php/php-7.4.33-nts-Win32-vc15-x64/ext目录下,memcached的两个文件同理。

然后在laragon菜单里的 PHP > Extensions里找到redis和memcache,点击开启即可,laragon会自动更新php.ini。

最后查看phpinfo,如果里面有这两项,说明安装成功了,接着到Laragon的端口设置里开启Redix和Memcache服务即可。

在服务端口界面勾选Memcached和Redis
服务开启后主界面会显示

在WordPress里开启memcached需要安装Memcached Object Cache插件,注意安装方法是下载插件后把里面的object-cache.php拷贝到wp-content文件夹下,不是在后台开启,开启它不会有任何用处。

开启Redis则需要安装Redis Object Cache,直接启用然后配置一下就可以了。

Laragon开启SSL和HTTP2

以nginx为例,HTTP2协议需要SSL的支持,从laragon的菜单可以直接开启SSL。然后修改以下nginx的站点配置模板,每个新的域名的配置都使用过这个模板,打开laragon\usr\tpl\Nginx.server.tpl,将开头的listen部分增加http2,然后在末尾增加一个新的server块来监听80端口。例如:

server {

    listen <<SSL_PORT>> ssl http2;
    server_name <<HOSTNAME>> *.<<HOSTNAME>>;
    root "<<PROJECT_DIR>>";
    
    index index.html index.htm index.php;
 
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        autoindex on;
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php_upstream;      
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    # Enable SSL
    ssl_certificate "<<SSL_DIR>>/<<HOSTNAME>>.crt";
    ssl_certificate_key "<<SSL_DIR>>/<<HOSTNAME>>.key";
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;
    
    
    charset utf-8;
    
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    location ~ /\.ht {
        deny all;
    }
}

# HTTP redirect
server {
    listen      <<PORT>>;
    server_name .<<HOSTNAME>>;
    return      301 https://$server_name$request_uri;
}

# This file is auto-generated.
# If you want Laragon to respect your changes, just remove the [auto.] prefix

遇到的问题

上传大文件时遇到ERR_CONNECTION_ABORTED错误

用All In One WP Migration插件移植网站时,备份文件比较大,上传文件时提示ERR_CONNECTION_ABORTED错误,这是服务器导致的上传失败,查看ngnix日志会有“client intended to send too large body”这种提示,解决方法是修改ngnix.conf里的配置,将client_max_body_size的值改大,例如client_max_body_size 5000M;

结束语

与Neard相比,Laragon的优点有:

  • 升级容易,不受软件本身制约,只要PHP MySQL等软件提供新版本,Laragon就可以升级。
  • 启动速度很快,Neard的启动速度和开启的服务相关,开启的服务越多,启动越慢。即使只打开最基本的三件套,启动速度也被Laragon甩出一条街。
  • 更加人性化,比如一键创建虚拟主机,一键安装WordPress,自动修改host文件;菜单提供常用的php.ini设置,比如memory_limit。

缺点:

默认的三件套版本过低,根本无法正常使用,需要先升级才能用。在MySQL的初始化上可能还有些小bug。

总的来说,Laragon是很不错的,问题都解决后用起来还是很得心应手的。

6条评论

    1. 应该可以,我找了下介绍的文章,比如https://devpress.csdn.net/cms/62f0e1fcc6770329307f4fcd.html
      laragon安装版是最新的php和mysql,装上直接用,还挺方便。

      1. 感谢您的建议,您推荐的这片文章我看了。但是没成功。然后参考下面这片文章已经可以成功命中断点https://sethreid.co.nz/articles/debugging-wordpress-with-visual-studio-code

  1. 有个Local by flywheel也挺好用的,https://localwp.com/ 感觉更傻瓜化一点,10分钟基本能完成环境部署,推荐博主可以试试,