developing laravel project without internet on remote desktop - laravel-5

I am working in an organization where i Have to start projects in laravel, but the problem there is that we are working on remote desktop i.e., without internet and without copy & paste of code. Is there any way to develop my web applications on remote desktop?
can I download the laravel source code and start development?
If Yes, how will I update packages or make commands on composer as composer downloads from internet?

Laravel source code can be downloaded to your local machine or remote computer and you start using it straight away without the need of internet (except for default Laravel bootstrap, google fonts, which can be downloaded by you, or you can ignore it completely)
The second thing composer doesn’t need connection at all, its local, it just generate files from command line.
However For packages yes you definitely need Internet so you will need connection.

Related

Laravel, only developing on remote server

Hello I have been wanting to get into working with a framework and Laravel seems like a decent one to try.
I have seen a lot of tutorials that tell you how to setup Laravel locally with Homestead or variants.
I am wanting to install and setup Laravel on my dedicated remote server with my hosting company. From there I want to be able to work with it on my local MacBook or MacPro.
I have not been able to find a good tutorial to make this happen in the fashion I want to do it.
I work with PHP and related daily but usually login to FTP and edit files with TextWrangler and save them and go about my day so my methods are dated and not efficient.
One side note is that I also have a Dell PowerEdge server running CentOS and VestaCP in my office as my development server so nothing is done locally per say (on my own computer) so the question and answer will apply to both my remote server and my remote but local development server.
Any suggestions are always welcome.
Best Regards,
Bradley
Assuming you have full root access to your remote servers, you should install composer on them and install Laravel in whichever way suits you. Then you can edit your project files just as if you were working on it locally.
Seriously though, the biggest thing you should add to your development arsenal (in case you haven't already) which will make your development process so much more resilient is Git.
Set up a free Bitbucket account, get a free Git client, and learn how commits, pushes, pulls, branches and deployments work. The easiest approach for deployment is to use a service such as Envoyer.
That way you can develop and test locally (even if 'locally' is a remote machine) and not really have to worry about breaking your app by making a mistake in controller or something on the live server.

Is XAMPP required when using Joomla and a web host?

I'm extremely new to building websites. I'm attempting to create a website using Joomla (and a Joomla template) and plan to use a webhost, bluehost.com. Do I still need to download XAMPP if I'm using bluehost? What's the point or use of XAMPP?
No, you don't need it. The likes of Xampp and Wamp are offline development environments that allow you to develop on your computer/localhost. So rather than making any changes to a live website that might result in the site breaking, you can simply take a backup, set it up on your localhost and testing your changes there. Be sure that you configure your localhost to use the same server settings as your live host as there might be some potential differences that may prevent things from working.
Seeing as you're new to web development, my advice would be to set up a local environment using either Xampp or Wamp, build your site on there, then move it to your live host when you feel ready to.
Charette,
Just have Bluehost install joomla for you. Install the free Akeeba backup yourself, and then start playing around with the demo content.
http://www.bluehost.com/joomla
Ask specific questions in the joomla forum:
http://forum.joomla.org/
Have fun

standalone web application

Is there way to run web application as standalone desktop application? Could be web application written using PHP, MySQL and Apache converted to standalone application which meets following requirements:
1. Application should be called as http://myapp.localhost.
2. Application should have desktop icon which directly opens browser with application's URL.
3. Source code of web application should be hidden from users.
4. Installation for end user must be as easy as possible.
Now I do steps 1-2 using xampp and manually creating shortcut. I was interested in some wrapper, installer which do above steps automatically. But I have no idea about 3rd step.
Regarding item 3, see Can you "compile" PHP code?. This would allow you to develop in PHP and deploy the application via an installer.
There are several installer packages which would allow you to automate these steps, depending on your development environment.
PHP and MySQL require to have a web server running. That means you will need to copy the code over to the client's machine and then run the web server locally still on the client's machine.
If that's what you want, look into the Microsoft IIS Express (here).
In short, IIS is a web server that can host and run a server side web application, written in ASP.NET or PHP.
Here are the steps you need to take:
Install IIS express on the client's machine (one-time process, and I think quite acceptable - treat this as a runtime installation).
Create a designated (hidden) folder for the source files of the web application that you want to deploy (one-time process).
Create a windows batch file (bat or cmd) that starts the IIS (as described here) and then opens the website's URL so that the default browser starts. This file will serve as a shortcut, so you can place it on the desktop or wherever appropriate (one-time process).
Deploy your web application to the hidden folder from step 2 above (repetitive process - deploy to the same folder when you want to upgrade the clients to a new version).
Please have in mind that I am basing my suggestion on your requirement to host and run the application locally (on localhost).
However, if there's an option to run the application on a separate machine (not a localhost), then you could simply place a desktop shortcut to the network or internet address URL that would open the default browser without problems.
i would suggest Pouchdb http://pouchdb.com/api.html and Adobe Air http://www.adobe.com/devnet/air/air-sdk-download.edu.html. This way you can code with html and javascript and package it with Adobe Air.
I'm afraid it's not that simple.
If you want to use this approach (and I highly discourage it), you will have to deploy a webserver of some sorts on the client. You should be able to run the Apache/IIS Express and MySQL/SQLite executable and start a simple webserver and database.
If you'd also like a icon, you can create an installer that creates this icon and points to the URL you wish.
I'm afraid that's not possible. PHP is and always will be a scripting language. You might be able to obfuscate it somehow, but anyone who can download your application will be able to de-obfuscate it.
Again, you can create an installer. Inno Setup is pretty good from what I've heard.

How can I perform cross browser testing when using Subversion as my version control system?

I have recently installed subversion and nginx server on my machine (macbook pro). I'm fairly new to subversion as a whole and have just built a single webpage through this version control system, and now I'm faced with the task of testing it in all of the relatively modern web browsers. My biggest concern, as far as browser compatibilty is concerned, is Internet Explorer which, in order to test, I need Windows. I have Windows 7 installed on my mac via Virtual Box, and herein lies my problem.
I have not committed the new page I've just created to the repository, by the request of the client. Because of this, as far as I know, I have no URL to use for testing in IE Tester, Firefox for Windows, etc. How can I test this 1 page site's browser compatibility with without having committed any changes to the repository?
I can test it easily on my machine using MacOS, by just typing in local.*.org and it shows up. Again, windows is my issue. This project is due this Thursday (5/24/12), so you're help is greatly appreciated.
1) Developing and testing your web page is different from managing your web page source. In other words, testing web pages != using SVN.
2) If you've not actually been able to use SVN yet - and if your client has no preferences - then please try TortoiseSVN:
http://scplugin.tigris.org
3) Please post back any specific questions you have about installing/using SVN.
If the site uses any scripting languages like PHP, and/or databases, you need to get those setup correctly first. If your website consists of just HTML/CSS/JS... then you can access the website via either of these methods:
Enable Web Sharing (System Preferences > Sharing > Web Sharing). Then type in the IP shown there into your browser in VirtualBox and it should load. (This is probably easier than trying to get nginx configured, though it might very well load if you just type in your machine's IP.)
In VirtualBox, select your VM (powered off), Settings > Shared Folders. Add your website's root directory. Launch the VM, then browse to it within the VM and open up your files there for testing.
My current environment is setup like this:
- Local dev machine with git & SVN
- Remote DB server
- Remote web server
- Web server mounts local dev machine's www folder as a volume and serves the PHP pages from there
- Load web browser in VMs or any other machines. Edit hosts file if need be for local routing.

Best way to interface between Windows dev platform and Linux test platform?

my project is a PHP web application. This applies to my test server (local), not production server! I am also the solo developer on this project (however, that may change in the very far future). Also, all my source code is committed to a repository and the production server gets the source code from the repository.
I do my development in Windows while my test server runs on Ubuntu (perhaps you can also recommend me another distro that is easy to use and can serve as a good web server). I need an elegant way to interface between the two environments. Currently, I do my coding in Windows and then FTP the changed files to the test server. However, this is quite cumbersome and tedious since I have to manually go to my FTP client each time. Suggest me something elegant please! Perhaps FTP sync? or OpenVPN (where the root www directory on test server is acts like a folder in Windows)? Thanks for your awesome time!
Easiest would be in Ubuntu, right click a folder then click "Sharing Options", then share the folder. In Windows, connect to the share, and work on that copy.
If you're using version control, using continuous integration like Hudson ( http://hudson-ci.org/ ) would help if you create a task that builds/exports the website for the testing server. This approach would be better in the long term, but you'll waste a day setting it up initially.
I prefer SFTP to FTP.
That said, ExpanDrive lets you map SFTP servers to local drive letters, which then means you can use any text editor to access your files directly on the test server, or use other mechanisms to keep the files in sync. Since they show up as two local drives, you can use just about any product out there.
If you want to use FTP, you can just map the drive in Windows Explorer. If you open up My Computer, then go to Tools > Map Network Drive, you can map a FTP server folder to any local drive. Just type in the address as the folder, ie. ftp://mscharley#192.168.0.10/htdocs
This will atleast save you a trip to the FTP client...
Is there any reason you couldn't just test on your local computer? At my job, we all develop and do developer testing locally, most of us using Windows. Our production and test servers are all linux based. Working locally is really nice, because you don't need to worry about making changes on the server with every small change.
Another option would be to create a checkout or working copy of your code on the server, and then run svn up or svn export (or equivalent using your version control software) each time you change the code on the server (assuming you are sshd into the server). This is kind of slow, but it's easy. The other option would be to write a script that goes through the svn logs for the recent commit and only exports or updates the ones that changed. This is much faster, and for all I know, there is already something out there that this.
Finally, some IDEs allow you to edit files live over ftp\sftp. Basically the IDE downloads a copy of the code and then reuploads it when you save.
Currently I develop on windows (PHP) as well and deploy on a Linux box for testing and production. This is how I do it.
Set up a local development server with e.g. WAMP.
Set up your code base in version control, e.g. Subversion.
Checkout your code base onto the testing/staging server, not just only on your local dev. environment.
In the early stages of development you want to deploy to the testing environment A LOT to sort out any discrepancies between your windows and linux environments. When your programming efforts turn more into program flow type programming this constant testing will probably slow down. But still take the effort to test on a regular basis.
To test your code base on staging do an svn update. I just log in with an SSH session to do this. A key thing here to note is that you do not have to make any config changes to your code base. If you do need to make config changes to your environment on staging it worth while spending the time to SCRIPT this process rather than this being a manual process.
Do the same for production. I use an Subversion check out on production as well. Make sure you set you .htaccess file to deny access to your hidden .svn folders and script the deployment especially if there a config changes necessary.
Some ideas:
Use a server environment under windows (e.g. EasyPHP).
Use a development tool that can save over FTP (e.g. ultra edit).
Use a network drive connected to the remote machine via FTP.
Use a network drive connected to the remote machine via Samba.
Run a linux distro inside a virtualization tool (e.g. virtual box) and write from the windows host to a share directory of the guest host.
Use dropbox to sync files between machines (there is more a hack than an "enterprise" solution).

Resources