【问题标题】:How to configure Laravel API to port 8000 with apache2?如何使用 apache2 将 Laravel API 配置为端口 8000?
【发布时间】:2019-11-16 05:36:56
【问题描述】:

我是 apache2 和 DigitalOccean 的新手。我有一个 Laravel 项目 API。我在 DigitalOcean 服务器上安装了 php mysql 和 apache2。我想使用 IP 地址和端口号 8000(如 http://139.59.28.165:8000)(在防火墙中启用端口 8000)访问 API。但是当我浏览链接http://139.59.28.165:8000时,它显示This site can’t be reached

但没有端口号,它会显示目录

但我想要这样的 IP 地址和端口号:

当前 DocumentRoot(/etc/apache2/sites-available/000-default.conf)

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/crm-api


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

【问题讨论】:

    标签: php laravel apache2


    【解决方案1】:

    将虚拟主机中的端口更改为 8000

    <VirtualHost *:8000>
    
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/crm-api
    
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    
    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
    

    您还可能希望将 DocumentRoot 设置为 /var/www/crm-api/public

    Laravel 指定公用文件夹应该是文档根目录。

    然后继续并重新启动 apache。

    【讨论】:

    • 你重启了 apache 吗?我忘了提。
    • 是的!我重启了sudo service apache2 restart
    • 没有端口你还能访问它吗? (端口 80)
    • 无端口,加载 Apache2 Ubuntu 默认页面139.59.28.165
    • 还有其他变化吗?
    【解决方案2】:

    您必须将虚拟主机的端口更改为 8000 并在 DocumentRoot 的末尾添加 public。 禁用并启用您的配置。

    <VirtualHost *:8000>
    
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/crm-api/public
    
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    

    这就像apache2不听8000 你必须通过编辑 /etc/apache2/port.conf 来启用它 并重启服务器

    Listen 80
    Listen 8000
    <IfModule ssl_module>
        Listen 443
    </IfModule>
    
     <IfModule mod_gnutls.c>
        Listen 443
     </IfModule>
    

    vim: 语法=apache ts=4 sw=4 sts=4 sr noet

    【讨论】:

    • 上面写着This site can’t be reached
    • 添加Listen 8000后重启。它说Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
    • 怎么改?
    • 你能发布这个文件的内容吗? /etc/apache2/port.conf
    • 尝试再次重新启动服务器,当我更改 port.conf 文件并运行重新启动命令时,它会显示相同的错误,但是当我重新运行它时,它启动良好,我可以使用端口 8000
    【解决方案3】:

    如果您使用 wamp 或 xampp,您需要从本地服务器更改您的端口,您应该从 Apache 配置文件中更改它并将其设置为 8000 而不是 80

    【讨论】:

    • Apache 配置文件在哪里?
    • 你用的是什么程序?
    • Ubuntu 18.04 服务器
    【解决方案4】:

    试试这个

    在服务器名称上创建一个配置文件 sudo nano /etc/apache2/sites-available/139.59.28.165:8000.conf 并添加以下内容

    <VirtualHost *:8000>
            ServerName 139.59.28.165:8000
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/crm-api/public
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            <Directory /var/www/crm-api>
                    AllowOverride All
            </Directory>
    
    </VirtualHost>
    

    运行以下命令

    sudo a2dissite 000-default.conf
    sudo a2ensite 139.59.28.165:8000.conf
    sudo a2enmod rewrite
    sudo service apache2 restart
    

    hosts文件/etc/hosts中添加以下内容

    127.0.0.1 139.59.28.165
    

    并且还将您的端口添加到ports configuration /etc/apache2/ports.conf

    Listen 8000
    

    别忘了重启apache2 sudo service apache2 restart

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 2016-07-13
      • 2019-02-20
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多