Mi primer servidor Web PHP local / My first localhost PHP Web Server
Tomar los primeros pasos para desarrollar sitios WEB requiere conocimientos tanto de Dev Ops como de Desarrollador:
* Puedan crearse distintas aplicaciones ingresando a través de un navegador a una url local (sitio.localhost).
* Pueda interpretarse el código PHP que se utilice en las mismas.
* (OPCIONAL) Pueda generarse una base de datos en el caso de que la aplicación necesite operar con datos por la interacción con el usuario final.
El último paso se indica como OPCIONAL en razón de que NO todos los sitios WEB requieren de una Base de Datos, ya que, por ejemplo, sitios de tipo landing page solamente presentan información de una persona / empresa / organización utilizando solamente el código HTML desarrollado para la misma. Igualmente, recomiendo hacer el paso opcional de manera que se pueda cubrir todo el universo de aplicaciones WEB que podrá desarrollar a futuro.
Previo a comenzar con el tutorial, ten en cuenta que para seguir los pasos indicados deberás contar con un entorno Linux y acceso a Internet. La gran pregunta ¿Por qué NO Windows? Principalmente por:
- Por un lado, necesitamos tener conocimientos en tecnologías que permitan el desarrollo del software WEB tanto del lado del cliente (HTML, Javascript / Jquery, CSS, etc.), como del lado del servidor (PHP, SQL, etc.).
- Por otro lado, necesitamos conocimientos básicos de administración de un servidor de manera que pueda alojarse el sitio (APACHE), interpretar el código de dicho software (versión del PHP) y tener un lugar donde los datos generados por dicha aplicación puedan accederse para distintas operaciones (BASE DE DATOS)
* Puedan crearse distintas aplicaciones ingresando a través de un navegador a una url local (sitio.localhost).
* Pueda interpretarse el código PHP que se utilice en las mismas.
* (OPCIONAL) Pueda generarse una base de datos en el caso de que la aplicación necesite operar con datos por la interacción con el usuario final.
El último paso se indica como OPCIONAL en razón de que NO todos los sitios WEB requieren de una Base de Datos, ya que, por ejemplo, sitios de tipo landing page solamente presentan información de una persona / empresa / organización utilizando solamente el código HTML desarrollado para la misma. Igualmente, recomiendo hacer el paso opcional de manera que se pueda cubrir todo el universo de aplicaciones WEB que podrá desarrollar a futuro.
Previo a comenzar con el tutorial, ten en cuenta que para seguir los pasos indicados deberás contar con un entorno Linux y acceso a Internet. La gran pregunta ¿Por qué NO Windows? Principalmente por:
- La adaptación de los entornos en Windows tienen su origen en Linux, por lo cual, es bueno siempre ir a la fuente.
- Si aprendes esta configuración y entiendes la misma, cuando tengas que hacer el salto a un servidor de producción no tendrás inconvenientes de configuración en caso de que gestiones un servidor completo (lo cual recomiendo).
- Iniciar sesión en una terminal bash.
- Instalar los servicios correspondientes para poder montar el servidor web:
- Finalizada la instalación de los servicios, de encontrarse todo correcto al ingresar en http://localhost se vería la siguiente información:
- Configuración de mi primer sitio example.localhost:
- Habilitar la configuración del sitio para el Apache:
- Crear carpeta log para el nuevo sitio:
- Crear directorio del sitio en donde se alojará la información:
- Generar un link en /var/www para ir a buscar la información del sitio:
- Configurar host local para que pueda reconocer la url example.localhost desde un navegador:
- Reiniciar servicio de apache2 para aplicar los cambios:
- Generar archivo de test en example.localhost para verificar funcionamiento:
- Ingresar mediante un navegador a http://example.localhost para verificar el funcionamiento:
sudo apt-get update
# Agregar repositorio PHP
# Ubuntu (para nuestro caso)
sudo add-apt-repository ppa:ondrej/php
# Debian
apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# Fin agregar repositorio
sudo apt-get install apache2 mysql-server php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-mysql php7.0-mbstring php7.0-xml php7.0-zip php7.0-gd
sudo a2enmod rewrite
sudo service apache2 restart
sudo nano /etc/apache2/sites-available/example.conf
# Copiar el siguiente contenido dentro del mismo <VirtualHost *:80> ServerName example.localhost ServerAdmin webmaster@localhost DocumentRoot /var/www/example.localhost ErrorLog /var/log/apache2/example.localhost/error.log CustomLog /var/log/apache2/example.localhost/access.log combined # Permito la sobreescritura de reglas con .htaccess <directory /var/www/example.localhost> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </VirtualHost>
cd /etc/apache2/sites-enabled; sudo ln -s ../sites-available/example.conf
sudo mkdir /var/log/apache2/example.localhost; sudo chmod 755 /var/log/apache2/example.localhost
sudo mkdir /home/example.localhost
cd /var/www; sudo ln -s /home/example.localhost
sudo nano /etc/hosts
Agregar la siguiente información debajo de 127.0.0.1 localhost:
127.0.0.1 localhost
127.0.0.1 example.localhost
sudo service apache2 restart
sudo cd /var/www/example.localhost; sudo nano index.php
Agregar el siguiente código dentro del mismo:
<?php echo phpinfo(); ?>
Web Development first steps require both Developer and Dev Ops skills:
* Create different web applications accesing them with a local url (site.localhost).
* Our localhost server would generate PHP code.
* (OPTIONAL) Create a database to bring CRUD operations to our software.
Last step is marked as OPTIONAL because not all website requires a database, as landing page for example, that only brings information about a person / company / organization. I strong suggest make the optional step in order to cover all WEB applications that we could develop in a near future.
Before we start, Consider having a Linux OS and Internet Access in your PC. The big question, why NOT Windows? Mainly because:
- On one hand, requires client-side development expertise (HTML, Javascript / Jquery, CSS, etc.) altogether with server-side development expertise (PHP, SQL, etc.).
- On the other hand, requires basic system administrator skills in order to host our site (APACHE), interpreate and generate our server-side code (PHP), and finally have a place to retrieve and save data that is generated by our software (DATABASE).
* Create different web applications accesing them with a local url (site.localhost).
* Our localhost server would generate PHP code.
* (OPTIONAL) Create a database to bring CRUD operations to our software.
Last step is marked as OPTIONAL because not all website requires a database, as landing page for example, that only brings information about a person / company / organization. I strong suggest make the optional step in order to cover all WEB applications that we could develop in a near future.
Before we start, Consider having a Linux OS and Internet Access in your PC. The big question, why NOT Windows? Mainly because:
- La adaptación de los entornos en Windows tienen su origen en Linux, por lo cual, es bueno siempre ir a la fuente.
- Easy PHP Web Server Windows's implementations (XAMPP) use Linux structure, so that, is good to go-to-source
- Learning & Understanding this configuration, gives you a easy path when you decide to jump into a Linux Production Server.
- Start a bash terminal.
- Install the following services:
- After installation completed, if any errors weren't encounter, accesing through a browse in http://localhost you should see something like these:
- Site example.localhost configuration:
- Enable website configuration to our Apache service:
- Create log directory to our website:
- Create root directory to our website:
- Generate a link into /var/www:
- Config manual host in order to resolve example.localhost from a browser:
- Restart Apache in order to apply changes:
- Generate test file into example.localhost:
- Access through a web browser into http://example.localhost:
sudo apt-get update
# Add PHP Repository
# Ubuntu (these tutorial)
sudo add-apt-repository ppa:ondrej/php
# Debian
apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# Fin agregar repositorio
sudo apt-get install apache2 mysql-server php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-mysql php7.0-mbstring php7.0-xml php7.0-zip php7.0-gd
sudo a2enmod rewrite
sudo service apache2 restart
sudo nano /etc/apache2/sites-available/example.conf
# Add this content <VirtualHost *:80> ServerName example.localhost ServerAdmin webmaster@localhost DocumentRoot /var/www/example.localhost ErrorLog /var/log/apache2/example.localhost/error.log CustomLog /var/log/apache2/example.localhost/access.log combined # Allow write permission on .htaccess <directory /var/www/example.localhost> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </VirtualHost>
cd /etc/apache2/sites-enabled; sudo ln -s ../sites-available/example.conf
sudo mkdir /var/log/apache2/example.localhost; sudo chmod 755 /var/log/apache2/example.localhost
sudo mkdir /home/example.localhost
cd /var/www; sudo ln -s /home/example.localhost
sudo nano /etc/hosts
Add this content under 127.0.0.1 localhost:
127.0.0.1 localhost
127.0.0.1 example.localhost
sudo service apache2 restart
sudo cd /var/www/example.localhost; sudo nano index.php
Add this PHP code inside:
<?php echo phpinfo(); ?>
Comentarios
Publicar un comentario