Apache使在同一个物理服务器上运行多个网站或Web应用程序,并使用自定义域名访问每个站点变得容易。 这称为虚拟主机,每个虚拟主机都可以映射到服务器的不同子目录。
此功能在开发方案中特别有用,因为它允许开发人员使用的域名隔离和访问不同的应用程序。 例如,域http://app01.localhost和http://app02.localhost可以指向同一服务器上的两个单独的应用程序。 或者,您可以为同一服务器上托管的多个客户端网站创建单独的域,例如http:// client1 /,http:// client2 /等。
备注:除非其他系统单独配置为将虚拟主机使用的自定义域与XAMPP服务器的IP地址相关联,否则无法从其他系统访问以这种方式创建的虚拟主机。 本指南通过为WordPress安装创建和配置名为www.abc.suitecrm的示例主机,引导您完成使用XAMPP设置新虚拟主机的过程。 假定您已经在/opt/lampp/htdocs/suitecrm上安装了suitecrm,并可以通过URL http://www.abc.suitecrm访问。
请按照以下步骤创建虚拟主机:
1、 打开一个新的Linux终端,并确保您以root用户身份登录。
2、转到您的XAMPP安装目录(通常为/ opt / lampp),然后使用文本编辑器打开etc /子目录中的httpd.conf文件。
3、在文件中,找到以下行,并通过删除该行开头的井号(#)取消注释。
Include etc/extra/httpd-vhosts.conf
4、接下来,打开XAMPP安装目录的etc / extra /子目录中的httpd-vhosts.conf文件。 用以下指令替换该文件的内容:
备注:必须将httpd-vhosts.conf文件所有内容注释掉!或者删除,再用以下内容替换。
<VirtualHost *:80> DocumentRoot "/opt/lampp/htdocs/" ServerName localhost
</VirtualHost>
<VirtualHost *:80> DocumentRoot "/opt/lampp/htdocs/suitecrm" ServerName www.abc.suitecrm
</VirtualHost>
这包含两个虚拟主机配置块:
第一个块是默认或后备虚拟主机,用于后续块不匹配的所有请求。
第二个块设置了一个名为www.abc.suitecrm的虚拟主机。 DocumentRoot指令指定为该虚拟主机提供请求时要使用的目录(在本例中为suitecrm安装目录),而ServerName指令指定虚拟主机的自定义域名。
要添加更多虚拟主机,只需复制第二个虚拟主机块,然后根据需要修改端口号,DocumentRoot和ServerName指令。 例如,如果要对自定义域名使用SSL,则可以为端口443添加新的虚拟主机块。
备注:如果您打算使用配置非常相似的大量虚拟主机,请考虑将基于通配符的子域与虚拟主机一起使用。
5、使用XAMPP控制面板重新启动Apache,以使更改生效。
如何在ubuntu操作系统调出下图可视化界面?参考:
6、至此,您的虚拟主机已配置完毕。 但是,如果尝试浏览到www.abc.suitecrm域,则浏览器将显示失败通知,因为该域实际上不存在。 要解决此问题,必须将自定义域映射到本地IP地址。 为此,请打开/ etc / hosts文件,并在其中添加以下行:
127.0.0.1 www.abc.suitecrm
这需要将www.abc.suitecrm域名映射到本地计算机,该本地计算机始终具有IP地址127.0.0.1。
此时,您应该可以在浏览器的地址栏中输入URL http://www.abc.suitecrm并查看suitecrm的安装。 这是您应看到的示例:
写在后
当xampp在ubuntu上安装成功后,只需修改3个文件:/ etc / hosts文件、etc / extra /子目录中的httpd-vhosts.conf文件、etc /子目录中的httpd.conf文件,然后重启一次aparche即可实现多站点部署!!!
重要:配置完,你可能无法正常访问PHPmyadmin
注意,看下面文章之前,请转到另一篇文章,因为另一边文章可以解决下面遇到的很多问题:Windows操作系统Xampp-启用对phpMyAdmin的远程访问
解决方案参考:https://www.louishe.com/2019/10/28/doc-5925.html
起因
发现 xampp 默认的 mysql 帐号居然是空密码,虽然只是本地调试环境,但还是不太舒服,因此修改了密码,再次访问 phpmyadmin 就出现此错误了。
分析
这是由于 xampp 中 phpmyadmin 的登陆方式默认是通过记录在配置文件的帐号密码来直接登陆而不是通过登陆界面登陆,但修改过密码后,就与配置文件里的帐号密码不符,因此出错。
解决方法
修改 phpmyadmin 的登录方式为传统的登陆界面登陆,修改 phpmyadmin 根目录下的配置文件 config.inc.php:
/* Authentication type */
//$cfg['Servers'][$i]['auth_type'] = 'config';//注释掉这一行
$cfg['Servers'][$i]['auth_type'] = 'cookie';//添加这一行
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'root';//你也可以顺便给phpmyadmin添加一个密码,默认为空!
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
后记
phpmyadmin 的登陆方式有三种,分别是 config、cookie、http 以及 signon。 config 就是直接使用配置文件的信息登陆; cookie 就是使用广泛的普通登陆方式登陆; http 就是使用 HTTP-Auth 模块来验证登陆,但局限性很大; signon 就是提供第三方接入来验证登陆。
重要2:第二个报错
mysqli::real_connect(): (HY000/2002): Connection refused
使用配置文件中定义的控制用户连接失败。
mysqli::real_connect(): (HY000/2002): Connection refused
解决办法:
第一步:按照官方文档设置一次密码,设置参考 http://localhost/dashboard/faq.html
How can I make my XAMPP installation more secure?
By default, XAMPP has no passwords set and it is not recommended to run XAMPP with this configuration as it is accessible to others.
Simply type the following command (as root) to start a simple security check:
sudo /opt/lampp/lampp security
Now you should see the following dialog on your screen:
XAMPP: Quick security check...
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Write the passworde somewhere down to make sure you won't forget it!!!
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Setting new MySQL root password.
XAMPP: Setting phpMyAdmin's root password to the new one.
XAMPP: The FTP password for user 'nobody' is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] yes
XAMPP: Password: ******
XAMPP: Password (again): ******
XAMPP: Reload ProFTPD...
XAMPP: Done.
(1) Setting a password will protect the XAMPP demo pages (http://localhost/xampp/) using this password. The user name is ‘lampp’!
After running this command, your XAMPP installation should be more secure.
第二步:
把/opt/lampp/phpmyadmin路径下的config.inc.php
文件,使用config.sample.inc.php
文件代替。即把原先的 config.inc.php
文件备份,把 config.sample.inc.php
修改成 config.inc.php
。
config.sample.inc.php :
*******
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
******
完成!