将远程 Laravel 应用配置为可从浏览器访问

Configure remote Laravel app to be accessible from browser

我参与的所有 laravel 个项目都是 installed/configured 由其他人发起的。很久以前,我设法使用 WAMP 在 Windows 机器上安装了一个 Laravel 项目,据我所知它更容易。 我最近从 digitalocean.com 获得了一个安装了 Centos 7 的干净 Droplet。我认为液滴类似于 VPS。您有 IP 和 SSH 访问权限 经过一番头痛之后,我设法使用 composer 成功安装了 laravel。我还安装了 mysql 和 apache(httpd) 现在我有

/var/www/laravel

文件夹,安装最新的Laravel(5.3)

我进去 /var/www/ 并打电话给

composer create-project laravel/laravel mypro

现在,我在

有一个新应用程序的 laravel 应用程序架构

/var/www/mypro

我想从浏览器访问它以便开始处理它,但我不知道我需要做什么。有很多关于如何做到这一点的教程,但它们让我很困惑。

接下来我必须做什么才能看到我正在处理的结果? 如果,在浏览器中,我现在通过 IP 访问 droplet,例如

http://xxx.xxx.xxx.xxx

我明白了

Not Found The requested URL / was not found on this server.

如果我将我的应用名称添加到 URL,如

,则相同

http://xxx.xxx.xxx.xxx/mypro

我相信我必须配置 httpd ?或者将项目的文件夹移动到其他地方?

我尝试将我的项目文件夹移动到 /var/www/html 文件夹中,所以

/var/www/html/mypro

现在,当我尝试访问 url 时,我收到一个空页面(查看浏览器页面的源代码 returns 也是一个空页面) 我什至试过

http://xxx.xxx.xxx.xxx/mypro/server.php

因为在我的项目文件夹的根目录中有一个 server.php 文件...相同的结果

我什至在名为 mypro.conf 的 /etc/httpd/conf.d/ 文件夹中添加了一个 conf,我在其中添加了这些行:

<VirtualHost *:80>
   ServerName mypro
   DocumentRoot "/var/www/html/mypro/public"
   <Directory /var/www/html/mypro/public>
      AllowOverride all
   </Directory>
</VirtualHost>

没有新的事情发生 每次更改内容时我都会 "service httpd restart"。

我什至尝试过

php artisan serve --host xxx.xxx.xxx.xxx --port 8000

并尝试了 url http://xxx.xxx.xxx.xxx:8000

现在我从浏览器得到 "Unable to connect" 页面,所以我停止了 "serve"

为了能够最终开始工作,我必须做什么?

以下是我在 Ubutnu 16.04 上的操作方式(可以在 Centos 上进行一些更改)。

更新您的软件包存储库。

sudo apt update

更新包。

sudo apt dist-upgrade

安装PHP

apt install php

安装apache2

apt install apache2

安装PHP插件

apt install php-mbstring php-pdo php-tokenizer php-xml php-mcrypt php-gd libapache2-mod-php php-curl php-mysql

启用 mcrypt

phpenmod mcrypt

a2enmod rewrite

重新启动 Apache 服务器

service apache2 restart

安装作曲家

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

安装Git

apt install git

安装mysql-server

apt install mysql-server

安装 Phpmyadmin(可选)

apt install phpmyadmin

安装 zip 和解压

apt install zip unzip

现在为您的网站创建 apache 虚拟主机配置。

cd /etc/apache2/sites-available

touch pqr.xyz.com.conf

的基本内容是pqr.xyz.com.conf

#content of pqr.xyz.com.conf
<VirtualHost *:80>
    ServerName pqr.xyz.com

    ServerAdmin webmaster@xyz.com
    DocumentRoot /var/www/html/pqr.xyz.com/public

    <Directory /var/www/html/pqr.xyz.com>
        AllowOverride All
    </Directory>

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

现在转到/var/www/html

cd /var/www/html/

使用您的网站名称创建一个目录

mkdir pqr.xyz.com

现在添加一个用户,因为在创建 laravel 项目时以 root 身份使用 composer 不是一个好主意。

adduser admin --ingroup admin

现在让管理员成为该目录的所有者

chown -R admin pqr.xyz.com

现在以管理员身份登录

转到/var/www/html

cd /var/www/html

使用作曲家

安装 Laravel
composer create-project laravel/laravel pqr.xyz.com

cd /var/www/html/pqr.xyz.com

现在您的存储和 bootstrap 目录应该对 apache 2 服务器具有写入权限,因此让 apache 成为这两个目录的所有者。

chown -R www-data storage

chown -R www-data bootstrap

现在以 root 身份登录

激活pqr.xyz.com.conf

a2dissite 000-default.conf

service apache2 reload

a2ensite shopperstock.eveningx.com.conf

service apache2 reload

service apache2 restart

这可能不是处理任何 larave 项目的最佳方式,所以请随时发表评论或建议修改。