reiniciar - Iniciar un servidor apache en cualquier directorio desde la línea de comandos
reiniciar apache windows (7)
Quiero poder iniciar un servidor apache desde la línea de comandos, escribiendo algo como apache site-folder
o apache . --port=2000
apache . --port=2000
Esto debería leer y usar archivos .htaccess
.
Sé sobre python -m SimpleHTTPServer
y está cerca de lo que necesito, pero no del todo.
Soluciones ideales:
- Contribuyendo una gran interfaz de línea de comandos para apache
- Escribir una herramienta de línea de comandos simple que contenga / contenga apache (o algo así)
- Enlace a documentos en un cli existente para apache
Solo quiero escribir el command <Directory> --port=8000 --other-options
El nombre del comando también podría ser pache
En algún momento tal vez quiera usar esto en producción. Debería ser fácil enviar el proceso al fondo y luego detener esa instancia o todas las instancias, como forever
Enlaces relevantes: http://httpd.apache.org/docs/2.4/programs/httpd.html
también
Debe ser solo un comando para que cualquiera instale el script para uso inmediato
http-server
es un servidor http mucho más simple que pache, ¡es lo que uso actualmente! :)
Utilice [pache] [1]
Instale con npm, que viene con el nodo aquí: http://nodejs.org/
sudo npm install pache -g
Ejecutar en el directorio actual, puerto 3000:
pache
O especifique el directorio y el puerto:
pache site-directory 2000
¿Por qué no usar Gatling que te permite hacer exactamente lo que quieres?
¿Qué pasa con el modo de depuración de Apache (-X)?
apache2 -X -d. -f.htaccess -C"PidFile `mktemp`" -C"Listen 1025"
-C"ErrorLog /dev/stdout" -C"DocumentRoot `pwd`"
para ponerlo en segundo plano una vez iniciado, puede usar Ctrl ^ Z y luego escribir "bg"
Usando el indicador FOREGROUND, envolviéndolo en un script de shell:
#!/bin/sh
if [ $# -ne 2 ]; then
echo "$0 <port> <dir>"
exit 10
fi
/usr/sbin/apache2 -DFOREGROUND -d. -f.htaccess -C"PidFile `mktemp`" /
-C"Listen $1" -C"ErrorLog /dev/stdout" -C"DocumentRoot $2" -e debug
llámalo "pache", chmod + x, entonces puedes ejecutar
./pache 1026 /tmp/webroot
Espero que encuentres tu solución. Odio .htaccess. Así que escribí esto:
#!/bin/bash
cat >._apache2_dir_conf << EOF
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
ErrorLog $1/._apache2_dir_error.log
HostnameLookups Off
NameVirtualHost *:$2
ServerName joyeruc
Listen $2
PidFile $1/._apache2_pid
<VirtualHost *:$2>
ServerAdmin joyer@uc
DocumentRoot $1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory $1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
ErrorLog $1/._apache2_dir_error.log
LogLevel warn
</VirtualHost>
EOF
#apache2 -k $3 -X -f $1/._apache2_dir_conf
apache2 -X -f $1/._apache2_dir_conf
Esto funciona:
Tu configuración de apache podría apuntar a / var / www
Luego use:
sudo mount -o bind /home/webcreatorperson/mywebsite /var/www
para desenlazar el uso:
sudo umount /var/www
Si desea varios puertos, puede preconfigurar puertos en apache para que apunten a directorios como / var / www / 8000.
Mmmm interesante.
Puedo ver por qué quiere poder generar una instancia de Apache separada, a pedido, en un puerto diferente, etc.
Es decir, a veces, solo desea cambiar la configuración para una instancia, o desea que los usuarios puedan auto-servir, etc.
Pero, lo que es más importante, desea poder ofrecer a sus usuarios flexibilidad de Apache sin que esto rompa a Apache para todos los demás. Eso es algo que un archivo de configuración de host virtual masivo no puede manejar.
Tengo una configuración similar en mis propios entornos.
En cualquier caso, para iniciar Apache en una Mac con configuraciones personalizadas, esto es lo que hice:
Carpetas / archivos:
~ / site / conf / httpd.conf ~ / site / logs / ~ / site / public /
Contenido del archivo httpd.conf:
# Can be substituted with an Include statement, which all httpd.conf can pull in.
# Included here for simplicity/single file example.
LoadModule authn_file_module /usr/libexec/apache2/mod_authn_file.so
LoadModule authn_dbm_module /usr/libexec/apache2/mod_authn_dbm.so
LoadModule authn_anon_module /usr/libexec/apache2/mod_authn_anon.so
LoadModule authn_dbd_module /usr/libexec/apache2/mod_authn_dbd.so
LoadModule authn_default_module /usr/libexec/apache2/mod_authn_default.so
LoadModule authz_host_module /usr/libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module /usr/libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module /usr/libexec/apache2/mod_authz_user.so
LoadModule authz_dbm_module /usr/libexec/apache2/mod_authz_dbm.so
LoadModule authz_owner_module /usr/libexec/apache2/mod_authz_owner.so
LoadModule authz_default_module /usr/libexec/apache2/mod_authz_default.so
LoadModule auth_basic_module /usr/libexec/apache2/mod_auth_basic.so
LoadModule auth_digest_module /usr/libexec/apache2/mod_auth_digest.so
LoadModule cache_module /usr/libexec/apache2/mod_cache.so
LoadModule disk_cache_module /usr/libexec/apache2/mod_disk_cache.so
LoadModule mem_cache_module /usr/libexec/apache2/mod_mem_cache.so
LoadModule dbd_module /usr/libexec/apache2/mod_dbd.so
LoadModule dumpio_module /usr/libexec/apache2/mod_dumpio.so
LoadModule reqtimeout_module /usr/libexec/apache2/mod_reqtimeout.so
LoadModule ext_filter_module /usr/libexec/apache2/mod_ext_filter.so
LoadModule include_module /usr/libexec/apache2/mod_include.so
LoadModule filter_module /usr/libexec/apache2/mod_filter.so
LoadModule substitute_module /usr/libexec/apache2/mod_substitute.so
LoadModule deflate_module /usr/libexec/apache2/mod_deflate.so
LoadModule log_config_module /usr/libexec/apache2/mod_log_config.so
LoadModule log_forensic_module /usr/libexec/apache2/mod_log_forensic.so
LoadModule logio_module /usr/libexec/apache2/mod_logio.so
LoadModule env_module /usr/libexec/apache2/mod_env.so
LoadModule mime_magic_module /usr/libexec/apache2/mod_mime_magic.so
LoadModule cern_meta_module /usr/libexec/apache2/mod_cern_meta.so
LoadModule expires_module /usr/libexec/apache2/mod_expires.so
LoadModule headers_module /usr/libexec/apache2/mod_headers.so
LoadModule ident_module /usr/libexec/apache2/mod_ident.so
LoadModule usertrack_module /usr/libexec/apache2/mod_usertrack.so
LoadModule setenvif_module /usr/libexec/apache2/mod_setenvif.so
LoadModule version_module /usr/libexec/apache2/mod_version.so
LoadModule proxy_module /usr/libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module /usr/libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module /usr/libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module /usr/libexec/apache2/mod_proxy_http.so
LoadModule proxy_scgi_module /usr/libexec/apache2/mod_proxy_scgi.so
LoadModule proxy_ajp_module /usr/libexec/apache2/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/libexec/apache2/mod_proxy_balancer.so
LoadModule ssl_module /usr/libexec/apache2/mod_ssl.so
LoadModule mime_module /usr/libexec/apache2/mod_mime.so
LoadModule dav_module /usr/libexec/apache2/mod_dav.so
LoadModule status_module /usr/libexec/apache2/mod_status.so
LoadModule autoindex_module /usr/libexec/apache2/mod_autoindex.so
LoadModule asis_module /usr/libexec/apache2/mod_asis.so
LoadModule info_module /usr/libexec/apache2/mod_info.so
LoadModule cgi_module /usr/libexec/apache2/mod_cgi.so
LoadModule dav_fs_module /usr/libexec/apache2/mod_dav_fs.so
LoadModule vhost_alias_module /usr/libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module /usr/libexec/apache2/mod_negotiation.so
LoadModule dir_module /usr/libexec/apache2/mod_dir.so
LoadModule imagemap_module /usr/libexec/apache2/mod_imagemap.so
LoadModule actions_module /usr/libexec/apache2/mod_actions.so
LoadModule speling_module /usr/libexec/apache2/mod_speling.so
LoadModule userdir_module /usr/libexec/apache2/mod_userdir.so
LoadModule alias_module /usr/libexec/apache2/mod_alias.so
LoadModule rewrite_module /usr/libexec/apache2/mod_rewrite.so
LoadModule hfs_apple_module /usr/libexec/apache2/mod_hfs_apple.so
# These can also be turned into an Include.
PidFile logs/httpd.pid
LockFile logs/httpd.lock
# Can be substituted for a variable in an Include.
Listen 8099
NameVirtualHost *:8099
# Just put this here to stop the startup error. Can be replaced with something else.
ServerName test
Include /etc/apache2/extra/httpd-autoindex.conf
Include /etc/apache2/extra/httpd-default.conf
Include /etc/apache2/extra/httpd-info.conf
<VirtualHost *:8099>
DocumentRoot /Users/doe/site/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ErrorLog logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
</VirtualHost>
Esto hace uso de la instalación de Apache en todo el sistema.
Para encender la instancia:
export PATH=/usr/sbin:$PATH
httpd -f /Users/doe/site/conf/httpd.conf -d `pwd` -T -k start
La configuración de los módulos, los puertos escuchados, las ubicaciones de los archivos php, pid y lock, etc. podrían trasladarse a una inclusión externa, que estaría controlada por el administrador y no por el usuario. Luego, puede proporcionar al usuario un archivo httpd.conf de plantilla de línea de base, un simple inicio / detener / recargar / etc. envoltorio, y ofrezca a todos sus usuarios la posibilidad de activar su propio sitio web.
Dado que se trata de un entorno Mac OS, cuanto menos necesite instalar, más sencilla será la administración.
Para el beneficio de que cualquiera que haya tropezado con esto con la misma pregunta, quería algo que fuera tan simple como el paquete https://github.com/devinrhode2/pache mencionado, pero no confiando en tener node.js instalado.
Mi caso de uso fue en busca de un reemplazo para el servidor webrick utilizado en Jekyll . Webrick, como la mayoría de los servidores http de ejecución ligera, no admite archivos .htaccess.
Así que tomé la respuesta de gpilotino y la empaqueté un poco. Lo he estado usando durante algunas semanas y, aunque estoy seguro de que se puede mejorar, está haciendo el trabajo. Se presenta como una secuencia de comandos y un archivo httpd.conf mínimo, lo que hace que sea fácil de ampliar para admitir, por ejemplo, PHP.
Puede encontrarlo en: https://github.com/julianbrowne/apache-anywhere
Esencialmente, una vez que está instalado (opcionalmente, la configuración se ha modificado) simplemente ejecutas:
apache -d document_root_directory -p {port}
y:
apache stop {port}
Cuando acabes.